收到此类错误后:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: core-dump) since Mon 2022-09-26 22:17:21 UTC; 8h ago
Docs: man:nginx(8)
尝试监视并在 nginx 失败时重新启动它。然而,不同的来源提出了不同的 syntassi:
Restart=always
Restart=on-failure
计时器或单位的文档均未描述此参数。这也造成了默认计时器是什么以及是否应该专门设置的不确定性。
该nginx.service
文件被编辑为包含一个,然后是 directory 中的另一个/usr/lib/systemd/system
。
有趣的是,目录/lib/systemd/system
具有相同的文件(两者都没有表示为别名;我假设目录别名在起作用?)并且对一个文件的更改会反映在另一个文件上。
所有更改均由systemctl daemon-reload
更改没有按预期重新启动 nginx。因此:
- 这两个 syntassi 有什么区别
- 如果没有指定,默认应用什么计时器
中的所有 systemd 指令都有一个索引
man systemd.directives
;因为Restart=
,这导致man systemd.service
。Restart=
确定托管服务退出时应该发生的情况。on-failure
指定如果它以非零退出代码退出、由于信号或管理操作超时,则应重新启动它。always
指定在所有情况下都应重新启动它。这里没有监控超时,进程退出时重启。服务可以配置看门狗,但这需要托管服务的合作(它需要定期通知看门狗)。