Nik*_*tas 2 systemd services systemctl
我想向自动启动服务的项目添加一个功能。
我的服务文件包含:
[Unit]
Description=example Server
After=network.target
[Service]
Type=idle
ExecStart=/opt/xxx/xxx/sample.sh
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
我遵循的步骤是:
重新加载守护进程: systemctl daemon-reload
启用服务: systemctl enable sample
启动服务: systemctl start sample
检查状态:service sample status,这表明我的服务正在运行...
如果服务崩溃或停止,我想自动启动它。
当我使用 停止我的服务时systemctl stop sample,它不会自动启动。知道如何实现这一目标吗?
该Restart设置不起作用这样的; 引用手册,
当进程因 systemd 操作(例如服务停止或重启)而死亡时,服务将不会重新启动。
systemctl允许您指定您希望服务处于的状态:systemctl start指定它应该运行,systemctl stop指定它不应该运行。systemd 然后采取任何必要的步骤来使系统状态与您的请求保持一致。
目的Restart是维护请求的系统状态,而不是让服务在所有情况下都运行。
如果你想验证 systemd 是否会在你的服务挂掉后重启你的服务,你需要直接杀死服务的主进程,而不是让 systemd 停止它:
systemctl kill sample
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2477 次 |
| 最近记录: |