zoukankan      html  css  js  c++  java
  • CentOS7中使用systemctl列出启动失败的服务

    本教程介绍如何使用systemctl工具列出启动失败的systemd管理的各个服务
    列出启动失败的服务
    [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'.
    

    CentOS7中使用systemctl列出启动失败的服务CentOS7中使用systemctl列出启动失败的服务
    可以发现,有个一个服务启动失败了。

    is-failed选项

    可以使用is-failed选项检查指定的服务是否启动失败。如果启动失败,结果是failed。如果启动没有问题,结果是active

    [root@localhost ~]# systemctl is-failed httpd
    failed
    [root@localhost ~]# systemctl is-failed vsftpd
    active
    

    CentOS7中使用systemctl列出启动失败的服务CentOS7中使用systemctl列出启动失败的服务

    检查服务的状态

    可以使用status选项,查看服务启动失败的原因,下面状态信息里面告诉我们,是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.
    

    CentOS7中使用systemctl列出启动失败的服务CentOS7中使用systemctl列出启动失败的服务

    使用journalctl查看服务的启动日志

    如果使用systemctl status [unit]没有找到服务启动失败的原因,可以使用journalctl查看更多的启动日志。

    下面操作是过滤出所有带有error的行,可以找到启动失败的服务。

    [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.
    

    CentOS7中使用systemctl列出启动失败的服务CentOS7中使用systemctl列出启动失败的服务
    也可以使用journalctl -u [unit]只查看某一个服务的启动日志:

    [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.
    

    CentOS7中使用systemctl列出启动失败的服务CentOS7中使用systemctl列出启动失败的服务
    发现 /etc/httpd/conf/httpd.conf配置文件的354行,Directory标签没有关闭,返现原因了,就马上修改吧。

    总结

    我们学习了如何使用systemctl命令显示在Linux上运行失败的服务/单元。有关详细信息,请查看systemctl手册。

  • 相关阅读:
    windows 10 上源码编译opengv | compile opengv on windows 10 from source
    ubuntu 16.04上源码编译libjpeg-turbo和使用教程 | compile and use libjpeg-turbo on ubuntu 16.04
    c 时间 学习
    cap文件的格式说明
    C#调用C++
    c/c++基础 const
    tomcat 简单安装配置说明
    言论
    近期任务
    解决mysql从windows迁移到centos出现乱码问题
  • 原文地址:https://www.cnblogs.com/linuxprobe/p/14779368.html
Copyright © 2011-2022 走看看