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/目录:
如果有读者之前学习过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初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比