1.更新服务配置文件内容(*.service 文件)
比如你修改了 /etc/systemd/system/xxx.service 的内容,或者你想替换成新的服务定义文件。
1 2 3 4 5 6 7 8 9 10 11 12
| sudo systemctl daemon-reexec sudo systemctl daemon-reload
sudo systemctl restart xxx.service
sudo systemctl enable xxx.service
systemctl status xxx.service
|
2.替换已有服务的二进制/脚本
如果你更新了服务所依赖的可执行文件或脚本内容,而 .service 文件没变。
1 2
| sudo systemctl restart xxx.service
|
3.清理旧缓存(有时修改不生效)
有些服务文件在 /etc/systemd/system/ 和 /lib/systemd/system/ 目录同时存在,可能导致优先级混乱。你可以:
1 2 3 4
| systemctl status xxx.service
|
📌 提示:/etc/systemd/system/ 的优先级高于 /lib/systemd/system/(或 /usr/lib/systemd/system/)
4.修改后无法启动
1 2 3 4 5
| journalctl -u xxx.service -xe
systemctl status xxx.service
|
5.示例:更新服务为新配置
假设你修改了 /etc/systemd/system/myapp.service,内容如下:
1 2 3 4 5 6 7 8 9 10
| [Unit] Description=MyApp Service After=network.target
[Service] ExecStart=/usr/local/bin/myapp --port 8080 Restart=on-failure
[Install] WantedBy=multi-user.target
|
1 2
| sudo systemctl daemon-reload sudo systemctl restart myapp.service
|