Linux下使用systemctl启动服务失败

📅 2026/8/4 20:13:47
Linux下使用systemctl启动服务失败
一、引言Linux下使用systemctl start/restart 命令启动服务结果失败这个时候可以通过journalctl 工具来查看systemd服务的日志journalctl -u 服务名显示该服务最近的20条日志journalctl -u 服务名 -n 20把 XXX.service 最近一个小时产生的 systemd 日志以 ISO 时间格式导出来不打开分页保存成 /tmp/localserver-last-hour.logjournalctl -u XXX.service --since 1 hour ago -o short-iso --no-pager /tmp/localserver-last-hour.log二、例子例子1可以看到该服务启动失败是因为无法成功打开依赖的动态库。所以这时可以查看对应的动态库是否存在来解决。例子2从该日志无法直观地看到服务启动失败的原因。所以我们查看该服务的配置文件可以看到启动该服务时应执行的命令是“/usr/local/lingTongHui/mdnsd/mdnsd”[Unit] Descriptionmdnsd [Service] Typesimple WorkingDirectory/usr/local/lingTongHui/mdnsd/ ExecStart/usr/local/lingTongHui/mdnsd/mdnsd ExecStop/usr/bin/kill -9 $MAINPID RestartSec5 Restartalways [Install] WantedBymulti-user.target查看该服务对应的可执行文件的帮助可以看到该可执行文件默认不加-debug参数就是以守护进程的方式启动的。所以这就导致了通过systemctl启动该服务失败所以修改配置文件为[Unit] ... ExecStart/usr/local/lingTongHui/mdnsd/mdnsd -debug ...重新通过systemctl start/restart 命令启动该服务可以发现成功了。三、参考《如何查看systemctl启动服务的日志》《深入了解journalctl -u》