1、
systemctl命令
|
说明
|
systemctl start [unit type]
|
启动服务
|
systemctl stop [unit type]
|
停止服务
|
systemctl restart [unit type]
|
重启服务
|
-
status:参数来查看服务运行情况
-
reload:重新加载服务,加载更新后的配置文件(并不是所有服务都支持这个参数,比如network.service)
2、设置开机启动/不启动服务
systemctl命令
|
说明
|
systemctl enable [unit type]
|
设置服务开机启动
|
systemctl disable [unit type]
|
设备服务禁止开机启动
|
3、查看系统上的所有服务
systemctl命令
|
说明
|
systemctl
|
列出所有的系统服务
|
systemctl list-units
|
列出所有启动unit
|
systemctl list-unit-files
|
列出所有启动文件
|
systemctl list-units –type=service –all
|
列出所有service类型的unit
|
systemctl list-units –type=service –all grep cpu
|
列出 cpu电源管理机制的服务
|
systemctl list-units –type=target –all
|
列出所有target
|
4、systemctl的特殊用法
systemctl命令
|
说明
|
systemctl is-active [unit type]
|
查看服务是否运行
|
systemctl is-enable [unit type]
|
查看服务是否设置为开机启动
|
systemctl mask [unit type]
|
注销指定服务
|
systemctl unmask [unit type]
|
取消注销指定服务
|
应用举例:
#查看网络服务是否启动
systemctl is-active network.service
#检查网络服务是否设置为开机启动
systemctl is-enable network.service
#停止cups服务
systemctl stop cups.service
#注销cups服务
systemctl mask cups.service
#查看cups服务状态
systemctl status cups.service
#取消注销cups服务
systemctl unmask cups.service
关闭sshd服务
在使用systemctl关闭网络服务时有一些特殊 需要同时关闭unit.servce和unit.socket
[root@localhost ~]# systemctl list-units --all |grep sshd
sshd-keygen.service loaded inactive dead OpenSSH Server Key Generation
sshd.service loaded active running OpenSSH server daemon
sshd.socket loaded inactive dead OpenSSH Server Socket
可以看到系统同时开启了 sshd.service 和 sshd.socket , 如果只闭关了 sshd.service 那么 sshd.socket还在监听网络,在网络上有要求连接 sshd 时就会启动 sshd.service 。因此如果想完全关闭sshd服务的话,需要同时停用 sshd.service 和 sshd.socket 。
systemctl stop sshd.service
systemctl stop sshd.socket
systemctl disable sshd.service sshd.socket
5、init命令与systemctl命令对比
init命令
|
systemctl命令
|
说明
|
init 0
|
systemctl poweroff
|
系统关机
|
init 6
|
systemctl reboot
|
重新启动
|
与开关机相关的其他命令:
systemctl命令
|
说明
|
systemctl suspend
|
进入睡眠模式
|
systemctl hibernate
|
进入休眠模式
|
systemctl rescue
|
强制进入救援模式
|
systemctl emergency
|
强制进入紧急救援模式
|
6、设置系统运行级别
运行级别对应表:
init级别
|
systemctl target
|
0
|
shutdown.target
|
1
|
emergency.target
|
2
|
rescure.target
|
3
|
multi-user.target
|
4
|
无
|
5
|
graphical.target
|
6
|
无
|
此外还有一个getty.target用来设置tty的数量。
设置运行级别:
命令格式:
systemctl [command] [unit.target]
参数详解:
command:
-
get-default :取得当前的target
-
set-default :设置指定的target为默认的运行级别
-
isolate :切换到指定的运行级别
-
unit.target :为5.1表中列出的运行级别
systemctl命令
|
说明
|
systemctl get-default
|
获得当前的运行级别
|
systemctl set-default multi-user.target
|
设置默认的运行级别为mulit-user
|
systemctl isolate multi-user.target
|
在不重启的情况下,切换到运行级别mulit-user下
|
systemctl isolate graphical.target
|
在不重启的情况下,切换到图形界面下
|
7、使用systemctl分析各服务之间的依赖关系
命令格式
systemctl list-dependencies [unit] [–reverse]
示例:
#获得当前运行级别的target
[root@www ~]# systemctl get-default
multi-user.target
#查看当前运行级别target(mult-user)启动了哪些服务
[root@www ~]# systemctl list-dependencies
#查看哪些target引用了当前运行级别的target
[root@www ~]# systemctl list-dependencies --reverse
8、开机关机
Table 4.2 systemctl Commands for Shutting Down, Suspending, or Rebooting a System
systemctl Command
|
Description
|
systemctl halt
|
Halt the system.
|
systemctl hibernate
|
Put the system into hibernation.
|
systemctl hybrid-sleep
|
Put the system into hibernation and suspend its operation.
|
systemctl poweroff
|
Halt and power off the system.
|
systemctl reboot
|
Reboot the system.
|
systemctl suspend
|
Suspend the system.
|