10.1 诊断服务问题
systemctl status [servicename]
适用于:Ubuntu(服务器和桌面版)>= 15.04,以及 RHEL/CentOS >= 7:其中 [servicename] 是相关服务;例如,systemctl status sshd。你可以使用 journalctl 查看更多错误。例如,journalctl -xe 将把最后 1000 条日志加载到分页器(如 less)中,并跳转到末尾。你也可以使用 journalctl -f,它将实时跟踪日志消息。要查看特定服务的日志,使用 -t 标志,如下所示:其他方便的选项包括 -p 用于优先级(-p warnings 只查看警告及以上级别),-b 用于"自上次启动以来",-S 用于"自从"——结合起来,我们可以这样做:journalctl -p err -S yesterday
如果 journalctl 不可用,或者你正在跟踪不使用系统日志的应用程序错误日志,可以使用 tail 命令显示文件的最后几行。tail 的一个有用标志是 -f(表示"跟随"),它会导致 tail 在数据追加到文件时继续显示。要查看系统上大多数服务的消息:tail -f /var/log/messages
某些服务有自己的日志文件,一个很好的例子是 auditd,Linux 审计守护进程,其日志存储在 /var/log/audit/ 中。如果你在 /var/log/messages 中没有看到服务的输出,请尝试在 /var/log/ 中查找服务特定的日志。10.2 启动和停止服务
在使用 System-V 风格 init 脚本的系统上,如 RHEL/CentOS 6:service <service> startservice <service> stop
在使用 systemd 的系统上,如 Ubuntu(服务器和桌面版)>= 15.04,以及 RHEL/CentOS >= 7:systemctl start <service> # 例如:systemctl start dnsmasqsystemctl stop <service> # 例如:systemctl stop dnsmasq
10.3 获取服务状态
在使用 System-V 风格 init 脚本的系统上,如 RHEL/CentOS 6:在使用 systemd 的系统上,如 Ubuntu(服务器和桌面版)>= 15.04,以及 RHEL/CentOS >= 7:systemctl status <service>