systemctl和service、chkconfig命令的关系
- systemctl命令:是一个systemd工具,主要负责控制systemd系统和服务管理器。
- service命令:可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
- chkconfig命令:是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
systemctl是RHEL 7 的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。可以使用它永久性或只在当前会话中启用/禁用服务。
所以systemctl命令是service命令和chkconfig命令的集合和代替。
例如:使用service启动服务实际上也是调用systemctl命令。
1 | [root@localhost ~]# service httpd start |
systemctl命令的用法
Systemctl命令简介:
Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
systemd即为system daemon,是linux下的一种init软件。
Systemctl命令常见用法:
(1)列出所有可用单元:
1 | [root@localhost ~]# systemctl list-unit-files |
(2)列出所有可用单元:
1 | [root@localhost ~]# systemctl list-units |
(3)列出所有失败单元:
1 | [root@localhost ~]# systemctl --failed |
(4)检查某个单元是否启动:
1 | [root@localhost ~]# systemctl is-enabled httpd.service |
(5)检查某个服务的运行状态:
1 | [root@localhost ~]# systemctl status httpd.service |
(6)列出所有服务:
1 | [root@localhost ~]# systemctl list-unit-files --type=service |
(7)启动,停止,重启服务等:
1 | [root@localhost ~]# systemctl restart httpd.service |
(8)查询服务是否激活,和配置是否开机启动:
1 | [root@localhost ~]# systemctl is-active httpd |
(9)使用systemctl命令杀死服务:
1 | [root@localhost ~]# systemctl kill httpd |
(10)列出系统的各项服务,挂载,设备等:
1 | [root@localhost ~]# systemctl list-unit-files --type |
(11)获得系统默认启动级别和设置默认启动级别:
1 | [root@localhost ~]# systemctl get-default |
(12)启动运行等级:
1 | systemctl isolate multiuser.target |
(13)重启、停止,挂起、休眠系统等:
1 | # systemctl reboot |
Service命令用法
service命令可以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
service命令的作用是去/etc/init.d目录下寻找相应的服务,进行开启和关闭等操作。
使用示例:
开启关闭一个服务:service httpd start/stop
1 | [root@localhost ~]# service httpd start |
查看系统服务的状态:service –status-all
1 | [root@localhost ~]# service --status-all |
chkconfig命令用法
chkconfig是管理系统服务(service)的命令行工具。所谓系统服务(service),就是随系统启动而启动,随系统关闭而关闭的程序。
chkconfig可以更新(启动或停止)和查询系统服务(service)运行级信息。更简单一点,chkconfig是一个用于维护/etc/rc[0-6].d目录的命令行工具。
chkconfig常见用法:
1 | [root@localhost ~]# chkconfig --help |
(一)设置service开机是否启动:
1 | chkconfig name on/off/reset |
- on、off、reset用于改变service的启动信息。
- on表示开启,off表示关闭,reset表示重置。
- 默认情况下,on和off开关只对运行级2,3,4,5有效,reset可以对所有运行级有效。
1 | [root@localhost ~]# chkconfig httpd on |
在Redhat7上,运行chkconfig命令,都会被转到systemcle命令上。
(2)设置service运行级别:
1 | chkconfig --level levels |
该命令可以用来指定服务的运行级别,即指定运行级别2,3,4,5等。
- 等级0表示:表示关机
- 等级1表示:单用户模式
- 等级2表示:无网络连接的多用户命令行模式
- 等级3表示:有网络连接的多用户命令行模式
- 等级4表示:不可用
- 等级5表示:带图形界面的多用户模式
- 等级6表示:重新启动
例如:
1 | [root@localhost ~]# chkconfig --level 5 httpd on |
(三)列出service启动信息:
1 | # chkconfig --list [name] |
如果不指定name,会列出所有services的信息。
每个service每个运行级别都会有一个启动和停止脚本;当切换运行级别时,init不会重启已经启动的service,也不会重新停止已经停止的service。
例如:
1 | [root@localhost ~]# chkconfig --list |
总结:service命令的功能基本都被systemct取代。直接使用systemctl命令即可。