我已经在 Pi (Raspbian) 上安装了 node.js 和 pm2。 PM2 配置为通过pm2 startup
其创建的初始化脚本启动。有时,当我重新启动时,关机会挂起几分钟:
A stop job is running for LSB: PM2 init script (... / 5min)
每隔一段时间,我就会假设 PM2 无法正常关闭并挂起整整 5 分钟。
在这个系统上,我确切地知道 PM2 正在管理哪些应用程序,而且我真的不在乎它们是否正确关闭。
我的问题是:如何将超时从 5 分钟减少到 15 秒左右?这是在哪里配置的?
我在论坛上读到这是DefaultTimeoutStopSec
关键/etc/systemd/system.conf,所以我尝试将其设置为“15s”,但没有效果。我尝试了同样的事情/etc/systemd/user.conf,也一样,但没有变化。超时仍设置为 5 分钟。
1我实际上确实知道具体是什么触发了这个,但细节并不重要,而且效果是不可避免的。
答案1
/etc/systemd/system.conf
有一条线
#DefaultTimeoutStopSec=90s
可以取消注释和更改
答案2
如何将超时从 5 分钟减少到 15 秒左右?
您从源代码重新构建 systemd,修补硬连线超时systemv-sysv-generator
从TimeoutSec=5min
到 任何你想要的。或者您向 systemd 人员询问 Fedora/SUSE 或 LSB 标头中某处的控制旋钮。
或者,在紧要关头,您放弃使用rc
您拥有的这个脚本,并为您的服务编写一个 systemd 服务单元,您可以使用显式设置来设置其超时,如有必要, TimeoutSec=
可以使用嵌入式设置文件进行安装。/etc/systemd/system/pm2.service.d/timeout.conf
给定这,这,这,这,这以及其他,迁移到 systemd 的第一条规则也适用于此。