systemctl 命令行工具
概述
参考:
systemctl 命令用来对整个“systemd”的系统和服务进行管理
Syntax(语法)
systemctl [OPTIONS] COMMAND [UNIT…]
UNIT 为 Unit 名称,如果指定了 UNIT 则只对这个 Unit 执行 COMMAND,如果不指定则对全局 Unit 进行操作
OPTIONS
- -t # 对指定类型的 unit 进行操作
- –all #
- –now # 该选项可以与 enable、disable、mask 命令一起使用。
- 与 enable 命令一起使用时,将同时启动该 Unit
- 与 disable 和 mask 命令一起使用时,将同时停止该 Unit、
- 注意:只有当 enable 或 disable 命令成功时,才会执行启动或停止操作。加了该选项就类似于执行了
systemctl enable UNIT && systemctl start UNIT
命令
COMMAND 分类
- Unit Command # 对 unit 执行操作的命令
- Unit File Commands # 对 Unit 文件执行操作的命令
- Machine Commands
- Job Commands
- Snapshot Commands
- Environment Commands
- Manager Lifecycle Commands # 生命周期管理器的命令
- System Commands
注意:OBJECT 可以使用 PATTERN(模式)来进行匹配,i.e.使用正则表达式来通过关键字查找 unit 来显示包含这些关键字的 unit 的状态
Unit Command
list-units
默认命令,当 COMMAND 为空时,默认执行该命令列出已加载(已启动)的 UNIT
Syntax(语法)
systemctl list-units [PATTERN]
EXAMPLE
- systemctl -t service # 查看所有 service unit 的信息,systemctl 命令默认列出所有 unit
- systemctl list-units –failed # 列出所有失败的 unit
list-sockets [PATTERN] List loaded sockets ordered by address
list-timers [PATTERN] List loaded timers ordered by next elapse
{start | stop | restart} UnitName # 立刻启动或者关闭或者重启某个 Unit
reload NAME
不关闭 UNIT 的情况下重新载入配置文件,让配置生效,只重新加载.conf 类的文件
try-restart NAME… Restart one or more units if active
reload-or-restart NAME… Reload one or more units if possible, otherwise start or restart
reload-or-try-restart NAME… Reload one or more units if possible,otherwise restart if active
isolate NAME
启动一个 unit 并关闭其他的。如果指定的 Unit 没写扩展名,则默认 target。
这个命令的作用类似于老的 init 系统中修改运行级别的效果
EXAMPLE
- systemctl isolate multi-user.target # 启动 multi-user.target 这个 unit 并关闭其他(类似于切换成纯文本运行方式)
- systemctl isolate graphical.target # 类似于切换成图形模式
kill NAME… Send signal to processes of a unit
is-active PATTERN… Check whether units are active
is-failed PATTERN… Check whether units are failed
status [PATTERN|PID]
显示整个系统的 Unit 状态信息包括树状关联信息,如果指定了 []
中的内容,则显示指定 Unit 运行时的状态信息
EXAMPLE
- systemctl status ssh.service # 查看 ssh.service 这个 unit 的状态
show [PATTERN…|JOB…] Show properties of one or more units/jobs or the manager
cat PATTERN
显示一个或多个 unit 的文件及其内容
查看 sshd 这个服务的配置文件路径以及配置文件的内容,效果如下
~]# systemctl cat sshd
# /lib/systemd/system/ssh.service
[Unit]
Description=OpenBSD Secure Shell server
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755
[Install]
WantedBy=multi-user.target
Alias=sshd.service
set-property NAME ASSIGNMENT… Sets one or more properties of a unit
help PATTERN…|PID… Show manual for one or more units
reset-failed [PATTERN…] Reset failed state for all, one, or more units
list-dependencies
列出服务的依赖关系,树状显示。默认列出 default.target 的依赖树,即 default.target 被哪些服务依赖。
Syntax(语法)
systemctl list-dependencies [OPTIONS] [UnitName]
可以指定 Unit,以列出该 UNIT 被哪些服务依赖
OPTIONS
- –reverse # 反向追踪,列出该 UNIT 依赖于哪些服务。即该 UNIT 可以给谁提供依赖,即被谁需要,即启动哪些 UNIT 需要以这个 UNIT 启动为前提
EXAMPLE
列出 sshd.service 这个 unit 可以给谁提供依赖
- systemctl list-dependencies sshd.service –reverse
Unit File Commands
list-unit-files [PATTERN…]
列出所有已经安装的 Unit 的配置文件。(目录为/usr/lib/systemd/system/下的所有文件)
{enable|disable} NAME
启用或禁用一个或多个 Unit 文件
reenable NAME… Reenable one or more unit files
preset NAME… Enable/disable one or more unit files based on preset configuration
preset-all Enable/disable all unit files based on preset configuration
is-enabled NAME… Check whether unit files are enabled
mask NAME… Mask one or more units
unmask NAME… Unmask one or more units
link PATH… Link one or more units files into the search path
add-wants TARGET NAME… Add ‘Wants’ dependency for the target on specified one or more units
add-requires TARGET NAME… Add ‘Requires’ dependency for the target on specified one or more units
edit NAME… Edit one or more unit files
get-default # 获取 default.target 的名字
获取引导进入的 default.target。获取的 TargetUnit 名字是(会通过符号链接的方式)default.target 的别名
set-default NAME # 设置 default.target
设置引导进入的 default.target。这个设置(会通过符号链接的方式)会用给定的 TargetUnit 给 default.target 起一个别名。相当于给一个 target 类型的 unit 建立了一个名为 default.target 的软链接
- EXAMPLE
- systemctl set-defult graphical.target # 给 graphical.target 创建一个名为 default.target 的软连接到 /etc/systemd/system/ 目录下
Machine Commands
list-machines [PATTERN…] List local containers and host
Job Commands
list-jobs [PATTERN…] List jobs
cancel [JOB…] Cancel all, one, or more jobs
Snapshot Commands
snapshot [NAME] Create a snapshot
delete NAME… Remove one or more snapshots
Environment Commands
show-environment Dump environment
set-environment NAME=VALUE… Set one or more environment variables
unset-environment NAME… Unset one or more environment variables
import-environment [NAME…] Import all or some environment variables
Manager Lifecycle Commands
daemon-reload
重新加载所有 daemon 的配置文件,包括.service 等文件一起重新加载
daemon-reexec Reexecute systemd manager
System Commands
is-system-running Check whether system is fully running
default Enter system default mode
rescue Enter system rescue mode
emergency Enter system emergency mode
halt Shut down and halt the system
poweroff Shut down and power-off the system
reboot [ARG] 关闭并重启系统
- Util-linux Utilities 包中的 reboot 命令不再维护后,reboot 命令的软链接就是 systemctl。
kexec Shut down and reboot the system with kexec
exit Request user instance exit
switch-root ROOT [INIT] Change to a different root file system
suspend Suspend the system
hibernate Hibernate the system
hybrid-sleep Hibernate and suspend the system
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.