我的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