RHEL 7之后Linux将init进程转换成systemd进程来进行管理,Linux底层的很多功能被systemd形成unit模块来管理。
systemd不仅管理着target,还管理着device、path、mount、service、socket等等各个模块
1、关于启动、停止、重启
halt与poweroff都是关机功能
重启启动计算机
2、关于启动、停止、重启、重新加载service、target、socket等等各个unit模块
status 查看service状态
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service)这里是NetworkManager服务unit位置,下面就是NetworkManager.service文件的具体配置内容
Loaded: loaded()之后的enabled表示NetworkManager.service开机启动,如果这里是disabled,则表示NetworkManager服务开机不自启,这里可以通过systemctl enable(disable) NetworkManager.service设置是否开机自启
Active: active(running)表示NetworkManager.service是运行状态,如果是inactive则表示NetworkManager服务没有运行,同时如果Active:后面是 active(exited)表示仅执行一次就正常结束的服务,active(waiting)表示正在执行中,但是需要等待其他事件结束才能继续
Main PID: 995 表示NetworkManager.service进程ID为995
Memory: 12.7M 表示NetworkManager.service占用内存容量为12.7M
stop 停止service
systemctl stop不仅仅只能停止service,其他的unit模块也可以停止,比如上面的cups.socket,注意,stop可以stop,但是socket能不能重新启起来就看自己,毕竟socket不是service
start 启动service
restart 重新启动service
3、两个在shell脚本中判断服务是否启动的命令
is-active 判断service是否在运行
is-enabled 判断service是否开机自启
enbaled表示ssh服务开机启动。也可以通过命令行来设置开机自启或者不自启
disable设置sshd服务开机不自启,Remove表示将sshd自启链接从systemd管理的目录中删除
重新设置开机启动,同时systemd管理目录中生成自启动链接。
4、get-default、set-default以及daemon-reload、isolate
get-default 表示开机默认加载的target
target就是一个盒子,盒子里面存放着一堆功能模块,当启动target的时候,该target里面的模块也一起启动。multi-user.target表示加载命令界面的一堆服务
set-default 设置开机加载的target(一般主要设置就是multi-user.target,graphical.target)
将原默认default.target删除,再创建default.target,链接到graphical.target,graphical.target表示开机加载图形界面
daemon-reload 表示重新加载所有配置文件
当修改了具体服务的配置文件时,需要将配置文件重新加载到内存,修改的内容才生效
isolate 表示在某个target
如果当前是mulit-user命令行界面,可以systemctl isolate graphical.target加载图形界面切换过去
5、list-units、list-units -all 、 list-units --type=service(socket、mount。。。) 、 list-units -all --type=service(socket、mount。。。) 、
list-units 表示系统所有启动的units
list-units --all 表示系统所有启动的和未启动的units
list-units --type=service 表示系统启动的units,但是筛选出service显示出来
list-units --all --type=service 表示系统所有的units,筛选出service显示出来
END