我的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",但是,我想要一个进程来检测应用程序是否崩溃,并重新运行相同的命令来重新启动它。不确定关于this...do的最好方法是使用npm原生的东西,比如永远,还是使用linux端的东西来重新启动进程?
处理这个问题的最好方法是什么?
发布于 2020-03-15 07:28:59
最简单的解决方案有点难看,但似乎是有效的:
"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(成功)。
发布于 2020-03-15 07:33:47
您的问题通常由流程管理器来解决。对于Node.js来说,最流行的一直是PM2
https://stackoverflow.com/questions/60687390
复制相似问题