gpt4 book ai didi

mongodb - npm 在 ctrl+c 上运行 poststop 脚本

转载 作者:可可西里 更新时间:2023-11-01 10:39:03 25 4
gpt4 key购买 nike

我的 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"
},

在启动我的服务器之前,我使用前 Hook 和后 Hook 来启动 mongod。然后我使用 ctrl+c 终止我的服务器。不幸的是,这不会执行 poststop 脚本。因此,第二次调用 npm/yarn start/dev 会抛出错误并中止,因为 mongod 已经在运行。

Another mongod instance is already running on the /data/db directory, terminating

我能以某种方式在 ctrl+c 上调用 poststop 吗?

最佳答案

您需要捕获 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"
},

关于mongodb - npm 在 ctrl+c 上运行 poststop 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50470920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com