CentOS7中使用systemctl列出啟動失敗的服務(wù)


點擊「閱讀原文」查看良許原創(chuàng)精品視頻。
點擊「閱讀原文」查看良許原創(chuàng)精品視頻。
列出啟動失敗的服務(wù)

[root@localhost?~]#?systemctl?list-units?--state?failed
??UNIT??????????LOAD???ACTIVE?SUB????DESCRIPTION
●?httpd.service?loaded?failed?failed?The?Apache?HTTP?Server
LOAD???=?Reflects?whether?the?unit?definition?was?properly?loaded.
ACTIVE?=?The?high-level?unit?activation?state,?i.e.?generalization?of?SUB.
SUB????=?The?low-level?unit?activation?state,?values?depend?on?unit?type.
1?loaded?units?listed.?Pass?--all?to?see?loaded?but?inactive?units,?too.
To?show?all?installed?unit?files?use?'systemctl?list-unit-files'.

可以發(fā)現(xiàn),有個一個服務(wù)啟動失敗了。
is-failed選項

可以使用is-failed選項檢查指定的服務(wù)是否啟動失敗。如果啟動失敗,結(jié)果是failed。如果啟動沒有問題,結(jié)果是active。
[root@localhost?~]#?systemctl?is-failed?httpd
failed
[root@localhost?~]#?systemctl?is-failed?vsftpd
active
檢查服務(wù)的狀態(tài)

可以使用status選項,查看服務(wù)啟動失敗的原因,下面狀態(tài)信息里面告訴我們,是httpd.conf配置文件354行有語法錯誤。
May?26?09:22:05?localhost?httpd[2958]:?httpd:?Syntax?error?on?line?354?of?/etc/httpd/conf/httpd.conf:?/...osed.
[root@localhost?~]#?systemctl?status?httpd
●?httpd.service?-?The?Apache?HTTP?Server
???Loaded:?loaded?(/usr/lib/systemd/system/httpd.service;?disabled;?vendor?preset:?disabled)
???Active:?failed?(Result:?exit-code)?since?Tue?2020-05-26?09:22:05?CST;?18min?ago
?????Docs:?man:httpd(8)
???????????man:apachectl(8)
?Main?PID:?2958?(code=exited,?status=1/FAILURE)
May?26?09:22:05?localhost?systemd[1]:?Starting?The?Apache?HTTP?Server...
May?26?09:22:05?localhost?httpd[2958]:?httpd:?Syntax?error?on?line?354?of?/etc/httpd/conf/httpd.conf:?/...osed.
May?26?09:22:05?localhost?systemd[1]:?httpd.service:?main?process?exited,?code=exited,?status=1/FAILURE
May?26?09:22:05?localhost?kill[2959]:?kill:?cannot?find?process?""
May?26?09:22:05?localhost?systemd[1]:?httpd.service:?control?process?exited,?code=exited?status=1
May?26?09:22:05?localhost?systemd[1]:?Failed?to?start?The?Apache?HTTP?Server.
May?26?09:22:05?localhost?systemd[1]:?Unit?httpd.service?entered?failed?state.
May?26?09:22:05?localhost?systemd[1]:?httpd.service?failed.
Hint:?Some?lines?were?ellipsized,?use?-l?to?show?in?full.

使用journalctl查看服務(wù)的啟動日志

如果使用systemctl status [unit]沒有找到服務(wù)啟動失敗的原因,可以使用journalctl查看更多的啟動日志。
下面操作是過濾出所有帶有error的行,可以找到啟動失敗的服務(wù)。
[root@localhost?~]#?journalctl?|grep?'error'
May?26?09:22:05?localhost?httpd[2958]:?httpd:?Syntax?error?on?line?354?of?/etc/httpd/conf/httpd.conf:?/etc/httpd/conf/httpd.conf:354:was?not?closed.

journalctl -u [unit]只查看某一個服務(wù)的啟動日志:[root@localhost?~]#?journalctl?-u?httpd.service
--?Logs?begin?at?Sun?2020-05-24?06:52:52?CST,?end?at?Tue?2020-05-26?09:48:03?CST.?--
May?26?09:22:05?localhost?systemd[1]:?Starting?The?Apache?HTTP?Server...
May?26?09:22:05?localhost?httpd[2958]:?httpd:?Syntax?error?on?line?354?of?/etc/httpd/conf/httpd.conf:?/etc/httpd/conf/httpd.conf:354:was?not?closed.
May?26?09:22:05?localhost?systemd[1]:?httpd.service:?main?process?exited,?code=exited,?status=1/FAILURE
May?26?09:22:05?localhost?kill[2959]:?kill:?cannot?find?process?""
May?26?09:22:05?localhost?systemd[1]:?httpd.service:?control?process?exited,?code=exited?status=1
May?26?09:22:05?localhost?systemd[1]:?Failed?to?start?The?Apache?HTTP?Server.
May?26?09:22:05?localhost?systemd[1]:?Unit?httpd.service?entered?failed?state.
May?26?09:22:05?localhost?systemd[1]:?httpd.service?failed.
#過濾出有錯誤的信息。
[root@localhost?~]#?journalctl?-u?httpd.service?|grep?'error'
May?26?09:22:05?localhost?httpd[2958]:?httpd:?Syntax?error?on?line?354?of?/etc/httpd/conf/httpd.conf:?/etc/httpd/conf/httpd.conf:354:was?not?closed.

發(fā)現(xiàn)?/etc/httpd/conf/httpd.conf配置文件的354行,Directory標簽沒有關(guān)閉,返現(xiàn)原因了,就馬上修改吧。
總? ? 結(jié)

我們學(xué)習(xí)了如何使用systemctl命令顯示在Linux上運行失敗的服務(wù)/單元。有關(guān)詳細信息,請查看systemctl手冊。
推薦閱讀:
想自己搭建服務(wù)器,永久運行網(wǎng)站?一個U盤大小的樹莓派就夠了!
CPU 明明 8 個核,網(wǎng)卡為啥拼命折騰 1 號核?
5T技術(shù)資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,單片機,樹莓派,等等。在公眾號內(nèi)回復(fù)「1024」,即可免費獲?。?!
評論
圖片
表情
