# systemd-analyze critical-chain
														
															重要:Systemctl接受服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。
														
															Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
														
															Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
														
															在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。Systemd通常是所有其它守护进程的父进程,
														
															但并非总是如此。
														
															
														
															 
														
															使用Systemctl管理Linux服务
														
															本文旨在阐明在运行systemd的系统上“如何控制系统和服务”。
														
															
															Systemd初体验和Systemctl基础
														
															
															1. 首先检查你的系统中是否安装有systemd并确定当前安装的版本
														
															# systemd--version
															systemd 215
															+PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP-APPARMOR
														
															上例中很清楚地表明,我们安装了215版本的systemd。
														
															
															2. 检查systemd和systemctl的二进制文件和库文件的安装位置
														
															# whereissystemd
															systemd:/usr/lib/systemd /etc/systemd /usr/share/systemd/usr/share/man/man1/systemd.1.gz
															# whereis systemctl
															systemctl:/usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz
														
															
															3. 检查systemd是否运行
														
															# ps -eaf | grep[s]ystemd
															root 10016:27?00:00:00/usr/lib/systemd/systemd --switched-root --system--deserialize 23
															root 4441016:27?00:00:00/usr/lib/systemd/systemd-journald
															root 4691016:27?00:00:00/usr/lib/systemd/systemd-udevd
															root 5551016:27?00:00:00/usr/lib/systemd/systemd-logind
															dbus 5561016:27?00:00:00/bin/dbus-daemon --system --address=systemd:--nofork--nopidfile --systemd-activation
														
															注意:systemd是作为父进程(PID=1)运行的。在上面带(-e)参数的ps命令输出中,选择所有进程,(-a)选择除会话前导外的所有进程,并使用(-f)参数输出完整格式列表(即 -eaf)。
														
															也请注意上例中后随的方括号和例子中剩余部分。方括号表达式是grep的字符类表达式的一部分。
														
															
															4. 分析systemd启动进程
														
															#systemd-analyze
															Startup finished in487ms(kernel)+2.776s(initrd)+20.229s(userspace)=23.493s
														
															
															5. 分析启动时各个进程花费的时间
														
															#systemd-analyze blame
															8.565s mariadb.service
															7.991s webmin.service
															6.095s postfix.service
															4.311s httpd.service
															3.926s firewalld.service
															3.780s kdump.service
															3.238s tuned.service
															1.712s network.service
															1.394s lvm2-monitor.service
															1.126s systemd-logind.service
															....
														
															
															6. 分析启动时的关键链
														
															#systemd-analyze critical-chain
															The time after the unit is active or started is printed after the "@"character.
															The time the unit takes to start is printed after the "+" character.
															multi-user.target @20.222s
															└─mariadb.service @11.657s+8.565s
															└─network.target @11.168s
															└─network.service @9.456s+1.712s
															└─NetworkManager.service @8.858s+596ms
															└─firewalld.service @4.931s+3.926s
															└─basic.target @4.916s
															└─sockets.target @4.916s
															└─dbus.socket @4.916s
															└─sysinit.target @4.905s
															└─systemd-update-utmp.service @4.864s+39ms
															└─auditd.service @4.563s+301ms
															└─systemd-tmpfiles-setup.service @4.485s+69ms
															└─rhel-import-state.service @4.342s+142ms
															└─local-fs.target @4.324s
															└─boot.mount @4.286s+31ms
															└─systemd-fsck@dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d19608096
															└─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device@4
														
															重要:Systemctl接受服务(.service),挂载点(.mount),套接口(.socket)和设备(.device)作为单元。
														
															6.1.1.7.列出所有可用单元
														
														
															# systemctl list-unit-files
														
															6.1.1.8.列出所有运行中单元
														
														
															
																# systemctl list-units
															
																6.1.1.9.列出所有失败单元
														 
														
														
															
																# systemctl –failed
															
																 
															
																6.1.1.10.检查某个单元是否启用
															
															
																
																	# systemctl is-enabled nginx.service 
																
																	6.1.1.11.检查某个单元或服务是否运行
																
																
																	
																		# systemctl status nginx.service