簡體   English   中英

如何自動重啟我通過“npm run start”運行的崩潰應用程序?

[英]how do i auto restart a crashed app that I run via "npm run start"?

我的 package.json 中有以下內容:

  "scripts": {
    "test": "node test.js",
    "ffmpeg": "ffmpeg -framerate 30 -i frames/test_%04d.png -y -s:v 1280x720 -c:v libx264 -profile:v high -crf 20 -pix_fmt yuv420p output.mp4",
    "deploy": "surge -p .",
    "start": "budo browser.js:bundle.js -p 80 --live -- -t babelify",
    "build": "browserify browser.js -t babelify | uglifyjs -m -c warnings=false > bundle.js"
  },

我通過“npm run start”啟動我的節點應用程序,它從我的 package.json 運行這一行就好了:

"start": "budo browser.js:bundle.js -p 80 --live -- -t babelify",

但是,我想要一個進程來檢測應用程序是否崩潰,並重新運行相同的命令以重新啟動它。 不確定最好的方法來解決這個問題……我是永遠使用 npm 原生的東西,還是使用 linux 端的東西來重新啟動進程?

處理這個問題的最佳方法是什么?

最簡單的解決方案有點難看,但似乎有效:

"start": "RC=1; while [ $RC -ne 0 ]; do budo browser.js:bundle.js -p 80 --live -- -t babelify; RC=$?; done",

即,循環運行您的命令( budo browser.js:bundle.js -p 80 --live -- -t babelify ),直到它以狀態代碼 0 退出(成功)。

您的問題通常由流程管理器解決。 Node.js 最流行的一直是PM2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM