linux systemctl 命令

$ systemctl --version

$ systemctl

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 的注销。

关于 unit 的启动状态,除了 enable 和 disable 之外还有:static:这个 unit 不可以自己启动,不过可能会被其它的 enabled 的服务来唤醒。mask:这个 unit 无论如何都无法被启动!因为已经被强制注销。可通过 systemctl unmask 改回原来的状态。

关于 unit 的运行状态 Active,除了 active 和 inactive 之外还有:active (exited):仅执行一次就正常结束的服务,目前并没有任何程序在系统中执行。举例来说,开机或者是挂载时才会进行一次的 quotaon 功能,就是这种模式! Quotaon 不需要一直执行,只在执行一次之后,就交给文件系统去自行处理。通常用 bash shell 写的小型服务,大多是属于这种类型。active (waiting):正在执行当中,不过还再等待其他的事件才能继续处理。举例来说,打印的相关服务就是这种状态。

$ systemctl enable prometheus.service

$ systemctl show prometheus.service

$ systemctl mask prometheus.service

$ systemctl unmask prometheus.service

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

--type=target 就可以用 systemctl list-units 命令查看系统中默认有多少种 target:

graphical.target:就是文字界面再加上图形界面,这个 target 已经包含了下面的 multi-user.target。multi-user.target:纯文本模式!rescue.target:在无法使用 root 登陆的情况下,systemd 在开机时会多加一个额外的临时系统,与你原本的系统无关。这时你可以取得 root 的权限来维护你的系统。emergency.target:紧急处理系统的错误,在无法使用 rescue.target 时,可以尝试使用这种模式!shutdown.target:就是执行关机。getty.target:可以设置 tty 的配置。

systemctl [command] [unit.target] get-default:取得目前的 target。set-default:设置后面接的 target 成为默认的操作模式。isolate:切换到后面接的模式。

$ systemctl get-default

$ systemctl set-default multi-user.target

$ systemctl isolate multi-user.target

$ systemctl emergency # 强制进入紧急救援模式

suspend:暂停模式会将系统的状态保存到内存中,然后关闭掉大部分的系统硬件,当然,并没有实际关机。当用户按下唤醒机器的按钮,系统数据会从内存中回复,然后重新驱动被大部分关闭的硬件,所以唤醒系统的速度比较快。hibernate:休眠模式则是将系统状态保存到硬盘当中,保存完毕后,将计算机关机。当用户尝试唤醒系统时,系统会开始正常运行,然后将保存在硬盘中的系统状态恢复回来。因为数据需要从硬盘读取,因此唤醒的速度比较慢(如果你使用的是 SSD 磁盘,唤醒的速度也是非常快的)。

systemctl list-dependencies [unit] [--reverse]       选项 --reverse 会反向追踪是谁在使用这个 unit。

$ systemctl list-dependencies multi-user.target --reverse

graphical.target 依赖 multi-user.target。

/lib/systemd/system/ 大多数 unit 的配置文件都放在这个目录下。 /run/systemd/system/ 系统运行过程中产生的脚本,比如用户相关的脚本和会话相关的脚本。/etc/systemd/system/ 这个目录中主要的文件都是指向 /lib/systemd/system/ 目录中的链接文件。

$ systemctl list-sockets

相关文章

LinuxSystemd服务(2021.07.09)目录LinuxSystemd服务(2021.07...
opidrvabortingprocessM002ospid(3561)asaresultofORA-600OR...
安装好haproxy后,配置正确无法启动,看日志:Feb1309:32:50clu...
Linux 系统与服务管理工具Systemd被曝存在3大漏洞,影响几乎...
一、systemd查看日志文件有隐藏 systemctlstatusSERVICE-l-...
不要在mp目录下保存文件,该目录会定期清理文件mp默认保存10...