Cas*_*mir 5 mongodb sigterm npm-scripts yarnpkg
我的package.json脚本部分看起来像这样。
"scripts": {
"prestart": "mongod",
"start": "NODE_ENV=prod node server.js",
"poststop": "mongo admin --eval 'db.shutdownServer()'",
"predev": "mongod",
"dev": "NODE_ENV=dev nodemon server.js"
},
Run Code Online (Sandbox Code Playgroud)
我使用 pre- 和 post 钩子mongod在启动我的服务器之前启动。然后我使用ctrl+杀死我的服务器c。不幸的是,这不会执行poststop脚本。结果,npm/yarn start/dev第二次调用会抛出错误并中止,因为mongod已经在运行。
另一个 mongod 实例已经在 /data/db 目录上运行,正在终止
我可以以某种方式实现poststop在ctrl+ c?
您需要捕获SIGINT信号并返回成功退出代码 (0)
"scripts": {
"prestart": "mongod",
"start": "trap 'exit 0' SIGINT; NODE_ENV=prod node server.js",
"poststop": "mongo admin --eval 'db.shutdownServer()'",
"predev": "mongod",
"dev": "NODE_ENV=dev nodemon server.js"
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1270 次 |
| 最近记录: |