Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何自动重新启动通过";运行的崩溃应用程序;npm运行开始”吗;?_Node.js_Linux_High Availability - Fatal编程技术网

Node.js 如何自动重新启动通过";运行的崩溃应用程序;npm运行开始”吗;?

Node.js 如何自动重新启动通过";运行的崩溃应用程序;npm运行开始”吗;?,node.js,linux,high-availability,Node.js,Linux,High Availability,我的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":

我的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”启动我的节点应用程序,它在my package.json中运行这一行很好:

"start": "budo browser.js:bundle.js -p 80 --live -- -t babelify",
但是,我需要一个进程来检测应用程序是否崩溃,并重新运行相同的命令来重新启动它。我不知道最好的方法是什么…我是使用npm固有的东西,比如forever,还是使用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-p80--live--t babelify
),直到它以状态代码0(成功)退出。

您的问题通常由流程管理器解决。Node.js中最流行的一个始终是

在这里查看我的答案: