@H_301_24@用法。注意,本文以 ubuntu 16.04 进行介绍,文中所有的 demo 都在 ubuntu 16.04 中完成。 @H_301_24@功能:
$ systemctl --version
$ systemctl
@H_301_24@start:立刻启动后面接的 unit。stop:立刻关闭后面接的 unit。restart:立刻关闭后启动后面接的 unit,亦即执行 stop 再 start 的意思。reload:不关闭 unit 的情况下,重新载入配置文件,让设置生效。enable:设置下次开机时,后面接的 unit 会被启动。disable:设置下次开机时,后面接的 unit 不会被启动。status:目前后面接的这个 unit 的状态,会列出有没有正在执行、开机时是否启动等信息。is-active:目前有没有正在运行中。is-enable:开机时有没有默认要启用这个 unit。kill :不要被 kill 这个名字吓着了,它其实是向运行 unit 的进程发送信号。show:列出 unit 的配置。mask:注销 unit,注销后你就无法启动这个 unit 了。unmask:取消对 unit 的注销。 @H_301_24@ @H_301_24@

$ systemctl enable prometheus.service
@H_301_24@

$ systemctl show prometheus.service
@H_301_24@
$ systemctl mask prometheus.service
@H_301_24@
$ systemctl unmask prometheus.service
@H_301_24@
list-units:列出当前已经启动的 unit,如果添加 -all 选项会同时列出没有启动的 unit。list-unit-files:根据 /lib/systemd/system/ 目录内的文件列出所有的 unit。--type=TYPE:可以过滤某个类型的 unit。
$ systemctl list-unit-files
$ systemctl list-units --type=service --all
--type=mount 就可以了:
$ systemctl --failed
@H_301_24@--type=target 就可以用 systemctl list-units 命令查看系统中默认有多少种 target: @H_301_24@

$ systemctl get-default
@H_301_24@
$ systemctl set-default multi-user.target
@H_301_24@
$ systemctl isolate multi-user.target
@H_301_24@
$ systemctl emergency # 强制进入紧急救援模式
@H_301_24@suspend:暂停模式会将系统的状态保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机。当用户按下唤醒机器的按钮,系统数据会从内存中回复,然后重新驱动被大部分关闭的硬件,所以唤醒系统的速度比较快。hibernate:休眠模式则是将系统状态保存到硬盘当中,保存完毕后,将计算机关机。当用户尝试唤醒系统时,系统会开始正常运行,然后将保存在硬盘中的系统状态恢复回来。因为数据需要从硬盘读取,因此唤醒的速度比较慢(如果你使用的是 SSD 磁盘,唤醒的速度也是非常快的)。
systemctl list-dependencies [unit] [--reverse] 选项 --reverse 会反向追踪是谁在使用这个 unit。
$ systemctl list-dependencies multi-user.target --reverse
graphical.target 依赖 multi-user.target。
@H_301_24@文件路径可能会不太一样,强调一下,本文介绍的是 ubuntu 16.04 。/lib/systemd/system/ 大多数 unit 的配置文件都放在这个目录下。 /run/systemd/system/ 系统运行过程中产生的脚本,比如用户相关的脚本和会话相关的脚本。/etc/systemd/system/ 这个目录中主要的文件都是指向 /lib/systemd/system/ 目录中的链接文件。配置文件时,既可以把配置文件放在 /lib/systemd/system/ 目录下,也可以放在 /etc/systemd/system/ 目录下。 @H_301_24@配置文件。文件就放在这个目录下。 @H_301_24@文件。那么,这些 socke 文件都存放在哪里呢?我们可以使用 systemctl 进行查看:
$ systemctl list-sockets
@H_301_24@