Systemd是Linux系统工具也是系统基础组件的集合用来启动守护进程。提供了一个系统和服务管理器,是系统启动的启动第一个程序、运行为 PID 1,并负责启动其它程序其中systemctl是systemd的管理控制工具
查看systemd程序文件位置信息
[root@localhost ~]# whereis systemd systemd:
/usr/lib/systemd /etc/systemd /usr/include/systemd /usr/share/systemd
/usr/share/man/man1/systemd.1.gz
[root@localhost ~]# rpm -qf
/usr/lib/systemd systemd-243-17.se.1.redhat.x86_64
运行级别( runlevel )是一个旧的概念。现在,systemd引入了一个和运行级别功能相似又不同的概念——目标(target)。不像数字表示的启动级别,每个目标都有名字和独特的功能,并且能同时启用多个。一些目标继承其他目标的服务,并启动新服务。
Unit(配置单元):系统初始化需要做的事情非常多。需要启动后台服务,比如启动ssh服务;需要做配置工作,比如挂载文件系统。这个过程中的每一步都被 systemd 抽象为一个配置单元,即unit。配置单元可以理解成一个服务、一个挂载点、一个交换分区的配置等等,systemd将配置单元归纳为以下一些不同的类型。
1)查看默认级别
systemctl get-default
2)查看当前运行级别
runlevel or who -r
3)设置默认级别
systemctl set-default multi-user. target
(注意:修改默认启动级别时仔细检查)
4)切换运行级别
方法1. init命令init 0|1|3|5|6
方法2: systemctl命令
systemctl isolate multi-user.target
linux运行级别用的最多的是3和5
0 shutdown.target (关机)
1 energency.target (紧急救援模式)
3 multi-user.target (多用户模式/字符系统)
5 graphical.target (桌面系统/图形化界面)
6 无(重启)
5)列出所有的target(服务的集合)
systemctl list-units --type=target --all
-
查看系统中所有服务的启动状态
systemctl list-unit-files (以前用chkconfig) -
查看一个运行级别下面所有的unit
list-dependencies:分析指定target各unit之间的依赖关系,如果不指明target,则表示是默认的target
systemctl list-dependencies multi-user.target
查看一个服务属于哪个target,只需要看[install]部分
cat /usr/lib/systemd/system/sshd.service
8)查看哪些target引用了当前运行级别的target
systemctl list-dependencies multi-user.target --reverse / / multi-user.target被graphical.target所引用