编辑Linux service文件重启服务是否生效?及myapp.service的WatchdogSec配置疑问
问题解答
1. 能否直接编辑Linux的*.service文件并重启服务完成配置?
可以直接编辑,但有两个关键注意点:
- 直接修改
/usr/lib/systemd/system/下的系统默认service文件,后续系统包更新时大概率会被覆盖。更稳妥的做法是在/etc/systemd/system/目录下创建对应服务的drop-in配置文件夹(比如myapp.service.d),在其中新建override.conf文件来修改配置,这样不会被系统更新冲掉。 - 编辑完成后,必须先执行
systemctl daemon-reload让systemd重新加载配置,再执行systemctl restart myapp.service重启服务,修改才会生效——只重启服务不重载配置的话,改动不会被应用。
2. 启用WatchdogSec=600后,应用终止时是否会在10分钟内重启?
这个理解有偏差,Watchdog的作用不是监控进程是否终止,而是监控应用是否无响应:
- 当你启用
WatchdogSec=600,且应用会定期发送sd_notify信号(比如WATCHDOG=1)告知systemd自身正常运行,systemd会启动监控:如果连续10分钟没收到这个信号,就判定应用已无响应,此时会根据服务的Restart=配置(比如Restart=on-failure、Restart=always等)决定是否重启。 - 如果应用是直接终止(比如崩溃、被手动kill),systemd会立刻检测到进程退出,此时是否重启完全由
Restart=参数决定,和WatchdogSec没有关系。 - 只有当应用卡住、无法发送sd_notify信号时,Watchdog才会在10分钟后触发重启逻辑(前提是Restart配置允许重启)。
内容的提问来源于stack exchange,提问作者Black
相关产品推荐
相关产品推荐

