node.js - 如何自动重启通过“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(成功)退出。
推荐阅读
- mochawesome - Invalid value null error for mochawesome-report-generator
- vue.js - Error in render: "ReferenceError: h is not defined"
- python - 如何打开文件进行读写,如果不存在则创建它,如果存在,则不截断它?
- swift - Every time I launch the project, it is only a black screen
- unity3d - If the z-axis increases add 1 to variable in unity
- python - How to make a code exclude a word in a list of numbers
- javascript - 未捕获的类型错误:无法读取 null 的属性“值””
- c# - 如何从对象类型列表中提取一种值
- c++ - VSCode C++ 导航到头文件类定义而不是实现文件
- javascript - 两个循环之间的区别