RHEL7系统采用了systemd初始化进程,那么如何查看某个服务的运行状态?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RHEL7系统采用了systemd初始化进程,那么如何查看某个服务的运行状态?相关的知识,希望对你有一定的参考价值。

查看指定服务的运行状态(前提是你已经知道服务的确切名称,少一个字母都不行, 比如httpd 写成http 就说找不到服务)
systemctl status httpd
如果想知道所有的服务,可以用这个直接写systemctl命令,这样所有的服务就都列出来了。

个人比较常遇见的是这种情况, 那就是不确定服务的名称,只记得关键词。 比如sshd这个服务,我只记得ssh,那么我可以用管道和grep先把这个服务过滤出来
systemctl | grep ssh
这样包括服务名和描述就都出来了
sshd.service loaded active running OpenSSH server daemon
然后再用systemctl status sshd 来查看这个服务的状态即可。

附赠一些相关的常用命令
systemctl stop sshd 关闭服务。
systemctl start sshd 启动服务
systemctl is-enabled sshd 查看一下开机是否自动启动
systemctl enable sshd 设置sshd服务开启自动启动
参考技术A 使用命令
systemctl status xxx
参考技术B 回答

查看指定服务的运行状态(前提是你已经知道服务的确切名称,少一个字母都不行, 比如httpd 写成http 就说找不到服务)systemctl status httpd如果想知道所有的服务,可以用这个直接写systemctl命令,这样所有的服务就都列出来了。个人比较常遇见的是这种情况, 那就是不确定服务的名称,只记得关键词。 比如sshd这个服务,我只记得ssh,那么我可以用管道和grep先把这个服务过滤出来systemctl | grep ssh这样包括服务名和描述就都出来了sshd.service loaded active running OpenSSH server daemon然后再用systemctl status sshd 来查看这个服务的状态即可。附赠一些相关的常用命令systemctl stop sshd 关闭服务。

systemctl start sshd 启动服务systemctl is-enabled sshd 查看一下开机是否自动启动systemctl enable sshd 设置sshd服务开启自动启动

提问

OK谢谢了

Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比

Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。红帽RHEL 7系统已经替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务。如果您之前学习的是RHEL 5或RHEL 6系统,可能会不习惯。systemd初始化进程服务采用了并发启动机制,开机速度得到了不小的提升。虽然systemd初始化进程服务具有很多新特性和优势,但目前还是下面4个槽点。

槽点1:systemd初始化进程服务的开发人员Lennart Poettering就职于红帽公司,这让其他系统的粉丝很不爽。

槽点2: systemd初始化进程服务仅仅可在Linux系统下运行,“抛弃”了UNIX系统用户。

槽点3:systemd接管了诸如syslogd、udev、cgroup等服务的工作,不再甘心只做初始化进程服务。

槽点4:使用systemd初始化进程服务后,RHEL 7系统变化太大,而相关的参考文档不多,令用户着实为难。

无论怎样,RHEL 7系统选择systemd初始化进程服务已经是一个既定事实,因此也没有了“运行级别”这个概念,Linux系统在启动时要进行大量的初始化工作,比如挂载文件系统和交换分区、启动各类进程服务等,这些都可以看作是一个一个的单元(Unit),systemd用目标(target)代替了System V init中运行级别的概念,这两者的区别如表1-3所示。

表1-3                                   systemd与System V init的区别以及作用

System V init运行级别 systemd目标名称 作用
0 runlevel0.target, poweroff.target 关机
1 runlevel1.target, rescue.target 单用户模式
2 runlevel2.target, multi-user.target 等同于级别3
3 runlevel3.target, multi-user.target 多用户的文本界面
4 runlevel4.target, multi-user.target 等同于级别3
5 runlevel5.target, graphical.target 多用户的图形界面
6 runlevel6.target, reboot.target 重启
emergency emergency.target 紧急Shell

 

如果想要将系统默认的运行目标修改为“多用户,无图形”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:

[root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

如果有读者之前学习过RHEL 6系统,或者已经习惯使用service、chkconfig等命令来管理系统服务,那么现在就比较郁闷了,因为在RHEL 7系统中是使用systemctl命令来管理服务的。表1-4和表1-5所示RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比。

表1-4            systemctl管理服务的启动、重启、停止、重载、查看状态等常用命令

System V init命令(RHEL 6系统) systemctl命令(RHEL 7系统) 作用
service foo start systemctl start foo.service 启动服务
service foo restart systemctl restart foo.service 重启服务
service foo stop systemctl stop foo.service 停止服务
service foo reload systemctl reload foo.service 重新加载配置文件(不终止服务)
service foo status systemctl status foo.service 查看服务状态

 

表1-5    systemctl设置服务开机启动、不启动、查看各级别下服务启动状态等常用命令

System V init命令(RHEL 6系统) systemctl命令(RHEL 7系统) 作用
chkconfig foo on systemctl enable foo.service 开机自动启动
chkconfig foo off systemctl disable foo.service 开机不自动启动
chkconfig foo systemctl is-enabled foo.service 查看特定服务是否为开机自启动
chkconfig --list systemctl list-unit-files --type=service 查看各个级别下服务的启动与禁用情况

 

以上是关于RHEL7系统采用了systemd初始化进程,那么如何查看某个服务的运行状态?的主要内容,如果未能解决你的问题,请参考以下文章

Systemd初始化进程

systemd初始化进程(转)

初识systemd-使用篇

Centos7 Systemd 使用详解

Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比

RHEL7 systemd初始化进程@3