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 次 |
最近记录: |