服務(wù)失敗)
一、引言Linux下使用systemctl start/restart 命令啟動(dòng)服務(wù)結(jié)果失敗這個(gè)時(shí)候可以通過(guò)journalctl 工具來(lái)查看systemd服務(wù)的日志journalctl -u 服務(wù)名顯示該服務(wù)最近的20條日志journalctl -u 服務(wù)名 -n 20把 XXX.service 最近一個(gè)小時(shí)產(chǎn)生的 systemd 日志以 ISO 時(shí)間格式導(dǎo)出來(lái)不打開(kāi)分頁(yè)保存成 /tmp/localserver-last-hour.logjournalctl -u XXX.service --since 1 hour ago -o short-iso --no-pager /tmp/localserver-last-hour.log二、例子例子1可以看到該服務(wù)啟動(dòng)失敗是因?yàn)闊o(wú)法成功打開(kāi)依賴的動(dòng)態(tài)庫(kù)。所以這時(shí)可以查看對(duì)應(yīng)的動(dòng)態(tài)庫(kù)是否存在來(lái)解決。例子2從該日志無(wú)法直觀地看到服務(wù)啟動(dòng)失敗的原因。所以我們查看該服務(wù)的配置文件可以看到啟動(dòng)該服務(wù)時(shí)應(yīng)執(zhí)行的命令是“/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查看該服務(wù)對(duì)應(yīng)的可執(zhí)行文件的幫助可以看到該可執(zhí)行文件默認(rèn)不加-debug參數(shù)就是以守護(hù)進(jìn)程的方式啟動(dòng)的。所以這就導(dǎo)致了通過(guò)systemctl啟動(dòng)該服務(wù)失敗所以修改配置文件為[Unit] ... ExecStart/usr/local/lingTongHui/mdnsd/mdnsd -debug ...重新通過(guò)systemctl start/restart 命令啟動(dòng)該服務(wù)可以發(fā)現(xiàn)成功了。三、參考《如何查看systemctl啟動(dòng)服務(wù)的日志》《深入了解journalctl -u》