systemctl

2020-04-07  本文已影响0人  小尘埃_bf52

systemctl(system control)-控制systemd系统和服务管理器。

描述:

向system 管理器查询或发送控制命令的工具。

使用说明:

options:

-h, --help  显示帮助信息

--version 显示版本信息

--system 连接到系统管理器

-H, --host=[USER@]HOST     在远程机器上操作,USER是可选填内容,即可以指定远程主机用户。HOST后面还可以添加SSH监听端口,例如"HOST:PORT/CONTAINER"格式,表示直接连接到远程主机的指定容器。

M, --machine=CONTAINER    在本地容器内操作,必须指定容器名称。

-t, --type=    列出指定类型的单元,参数必须是一个 逗号分隔的单元类型列表 (例如"service,socket")。否则将列出所有类型的单元。

    --state=   列出处于指定状态的单元,参数必须是一个逗号分隔的单元状态列表(例如,使用--                      state=failed 表示只列出处于失败(failed)状态的单元。)

-p, --property=    显示属性时,仅显示参数给定的属性,参数必须是一个逗号分隔的属性名称列表(例如"MainPID,LogLevel")。

--all    在列出单元时,表示列出所有已加载的单元(不管它处于何种状态)。

-l, --full    在输出中, 显示完整的单元名称、进程树项目、日志输出、单元描述, 也就是不省略或截断它们。

-r, --recursive    在列出单元时, 同时也以 "容器名:单元名" 格式列出本地容器中的单元。

    --reverse       在使用 list-dependencies 命令时, 仅显示单元之间的反向依赖关系。 也就是仅显  示 WantedBy=, RequiredBy=, PartOf=, BoundBy= 系列(而不是 Wants= 系列)的依赖关系。

    --job-mode    在向任务队列中添加新任务(job)时,如何处理队列中已有该任务的行为。 可设为 "fail", "replace", "replace-irreversibly", "isolate", "ignore-dependencies", "ignore-requirements", "flush"。

    --show-types    在列出套接字(socket)时,同时显示套接字的类型。

-i, --ignore-inhibitors    当关闭或休眠系统时,忽略 inhibitor 锁。

    --kill-who=    指定向哪个进程发送信号。

-s, --signal=    指定向目标进程发送哪个信号。

    --now    在设置单元可用或不可用状态的同时开启或停止该单元。

-q, --quiet    安静模式, 也就是禁止输出任何信息到标准输出。

    --no-block    不用等待操作结束。

    --no-wall    在执行 halt, poweroff, reboot 动作前,不发送警告消息。

    --no-reload    与 enable, disable, edit 命令连用, 表示在完成操作之后不重新加载 systemd 守护进程的配置(默认会自动重新加载), 相当于不自动执行 daemon-reload 命令。

    --no-legend    不输出列标题, 也就是不在输出列表的头部和尾部显示字段的名称。

    --no-pager    不将程序的输出内容管道(pipe)给分页程序。

    --no-ask-password    不询问密码。

    --global    表示在全局用户单元目录(通常是 /etc/systemd/user/)上操作, 从而全局的操作一个用户单元, 这会影响到所有未来登入的用户。

    --runtime    仅作临时变更, 从而确保这些变更会在重启后丢失。 这意味着所做的变更将会保存在 /run 目录下(立即生效但重启后该目录的内容将全部丢失), 而不是保存在 /etc 目录下。、

-f, --force    当与 enable 命令连用时, 表示覆盖所有现存的同名符号链接。当执行关机操作时,立即执行指令。

    --preset-mode=    与 preset 或 preset-all 命令连用, 可设为下列值之一: "full"(默认值) 表示完全按照预设规则启用与停用各单元。 "enable-only" 表示仅按照预设规则启用各单元。 "disable-only" 表示仅按照预设规则停用各单元。

    --root=   设置指定单元文件时的根目录。 使用此选项之后,systemctl 将会直接操作文件系统, 而不是通过与 systemd 守护进程通信的方式进行操作。

-n, --lines=   控制日志的显示行数,参数必须是整数。

-o, --output=    控制日志的显示格式。 

    --plain    控制输出从默认的树形变为列表型。

command:

1. 单元命令

list-units [PATTERN…]    列出 systemd 当前已加载到内存中的单元。 如果给出了模式(PATTERN)参数,那么表示该命令仅作用于单元名称与至少一个模式相匹配的单元。 还可以通过 --type= 与 --state= 选项 过滤要列出的单元。

list-sockets [PATTERN…]    列出当前已加载到内存中的套接字(socket)单元,并按照监听地址排序。

list-timers [PATTERN…]    列出当前已加载到内存中的定时器(timer)单元,并按照下次执行的时间点排序。

start NAME    启动(activate)指定的已加载单元 (无法启动未加载的单元)。

stop NAME    停止(deactivate) 指定的单元

reload NAME   要求指定的单元重新加载它们的配置。 注意, 这里所说的"配置"是服务进程专属的配置(例如 httpd.conf 之类), 而不是 systemd 的"单元文件"。 如果你想重新加载 systemd 的"单元文件", 那么应该使用 daemon-reload 命令。 以 Apache 为例, 该命令会导致重新加载 httpd.conf 文件, 而不是 apache.service 文件。

restart NAME    重新启动(先停止再启动)指定的单元。 若指定的单元尚未启动,则启动它们。

try-restart NAME    重新启动(先停止再启动)指定的已启动单元。 注意,若指定的单元尚未启动, 则不做任何操作。

reload-or-restart NAME    首先尝试重新加载指定单元的进程专属配置,对于那些加载失败的单元,再继续尝试重新启动(先停止再启动)它们。 若指定的单元尚未启动,则启动它们。

reload-or-try-restart NAME    首先尝试重新加载指定单元的进程专属配置,对于那些加载失败的单元,再继续尝试重新启动(先停止再启动)它们。 注意,若指定的单元尚未启动,则不做任何操作。

isolate NAME   启动指定的单元及其依赖的所有单元,同时停止所有其他 IgnoreOnIsolate=no 的单元。

kill NAME    向指定单元的 --kill-who= 进程发送 --signal= 信号。

is-active PATTERN…    检查指定的单元中, 是否有处于活动(active)状态的单元。

is-failed PATTERN…    检查指定的单元中, 是否有处于失败(failed)状态的单元。

status [PATTERN…|PID…]    如果指定了单元, 那么显示指定单元的运行时状态信息,以及这些单元最近的日志数据。 如果指定了PID,那么显示指定PID所属单元的运行时状态信息,以及这些单元最近的日志数据。 如果未指定任何单元或PID,那么显示整个系统的状态信息, 此时若与 --all 连用,则同时显示所有已加载单元(可以用 -t 限定单元类型)的 状态信息。

show [PATTERN…|JOB…]    显示指定单元或任务的所有属性,单元用其名称表示,而任务则用其id表示。 如果没有指定任何单元或任务,那么显示管理器(systemd)自身的属性。 除非使用了 --all 选项,否则默认不显示属性值为空的属性。 可以使用 --property= 选项限定仅显示特定的属性。 此命令的输出仅适合用于程序分析,而不适合被人类阅读(应该使用 status 命令)。

cat PATTERN…    显示指定单元的单元文件内容。 

set-property NAME ASSIGNMENT    修改单元的属性值。 

help PATTERN…|PID…    显示指定单元或PID进程的手册页(若存在)。

reset-failed [PATTERN…]    重置指定单元的失败(failed)状态。

list-dependencies [UNIT]     显示单元的依赖关系。

2. 单元文件命令

list-unit-files [PATTERN…]    列出所有已安装的单元文件及其启用状态。

enable NAME   启用指定的单元或单元实例(多数时候相当于将这些单元设为"开机时自动启动"或"插入某个硬件时自动启动")。

disable NAME   停用指定的单元或单元实例(多数时候相当于撤销这些单元的"开机时自动启动"以及"插入某个硬件时自动启动")。

reenable NAME    重新启用指定的单元或单元实例。 这相当于先使用 disable 命令之后再使用 enable 命令。

preset NAME    按照预设文件(*.preset)的指示,重置指定单元的启用(enable)/停用(disable)状态。

preset-all    按照预设文件(*.preset)的指示, 重置全部单元的启用(enable)/停用(disable)状态。

is-enabled NAME    检查是否有至少一个指定的单元或单元实例 已经被启用(使用enable 命令)。

mask NAME    屏蔽指定的单元或单元实例。 也就是在单元目录中创建指向 /dev/null 的同名符号连接,从而在根本上确保无法启动这些单元。 这比 disable 命令更彻底,可以通杀一切启动方法(包括手动启动),所以应该谨慎使用该命令。

unmask NAME    解除对指定单元或单元实例的屏蔽,这是 mask 命令的反动作。

link PATH…    将不在标准单元目录中的单元文件(通过软链接)连接到标准单元目录中去。 PATH 参数必须是单元文件的绝对路径。

add-wants TARGET  NAME    将指定的单元或单元实例(UNIT) 作为 "Wants=" 或 "Requires=" 依赖, 添加到 TARGET 单元中。

add-requires TARGET NAME    将指定的单元或单元实例(UNIT) 作为 "Requires=" 依赖, 添加到TARGET单元中。

edit NAME…    调用文本编辑器修改 指定的单元或单元实例。

get-default    显示默认的启动目标。 这将显示 default.target 软链接所指向的实际单元文件的名称。

set-default NAME    设置默认的启动目标。 这会将 default.target 软链接指向 TARGET 单元。

3. 机器命令

list-machines [PATTERN…]    列出 主机和所有运行中的本地容器,以及它们的状态。如果给出了模式(PATTERN)参数, 那么仅显示容器名称与至少一个模式匹配的本地容器。

4. 任务命令

list-jobs [PATTERN…]    列出正在运行中的任务。 如果给出了模式(PATTERN)参数, 那么仅显示单元名称与至少一个模式匹配的任务。当与 --after 或 --before 连用时, 输出列表将会包含正在等待哪些任务完成,或哪些任务正在等待此处的任务完成。

cancel JOB…    据给定的任务ID撤消任务。 如果没有给出任务ID, 那么表示撤消所有尚未执行的任务。

5. 快照命令

snapshot NAME    创建一个快照

delete NAME    删除一个或多个快照

6. 环境命令

show-environment    显示所有 systemd 环境变量及其值。 

set-environment NAME=VALUE…    设置指定的 systemd 环境变量。

unset-environment NAME   撤消指定的 systemd 环境变量。 如果仅指定了变量名,那么表示无条件的撤消该变量(无论其值是什么)。 如果以 VARIABLE=VALUE 格式同时给出了变量值, 那么表示仅当 VARIABLE 的值恰好等于 VALUE 时, 才撤消 VARIABLE 变量。

import-environment [NAME…]     导入指定的客户端 环境变量。如果未指定任何参数,则表示导入 全部客户端环境变量。

7. systemd管理器生命周期命令

daemon-reload    重新加载 systemd 守护进程的配置。 具体是指,重新运行所有的生成器,重新加载所有单元文件,重建整个依赖关系树。在重新加载过程中,所有由 systemd 代为监听的用户套接字都始终保持可访问状态。不要将此命令与 reload 命令混淆。

daemon-reexec    重新执行 systemd 守护进程。 具体是指,首先序列化 systemd 状态, 接着重新执行 systemd 守护进程并反序列化原有状态。 此命令仅供调试和升级 systemd 使用。

8. 系统命令

is-system-running    检查当前系统是否处于完全运行状态(running)。

     initializing    初始化阶段。也就是尚未到达 basic.target/rescue.target/emergency.target 之前的阶段。

     starting    正在启动阶段。 也就是任务队列首次达到空闲之前的阶段,或者已经启动到了某个救援 target 中。

     running    完成了全部的启动操作,整个系统已经处于完全可用的状态, 并且没有任何单元处于失败(failed)状态。

    degraded    完成了全部的启动操作,系统已经可用, 但是某些单元处于失败(failed)状态。

    maintenance    启动了 rescue.target/emergency.target 目标。

    stopping    系统正处于关闭过程中。

    offline    整个系统已经处于完全下线状态。

    unknown    由于资源不足或未知原因,无法检测系统的当前状态。

default    进入默认模式。相当于执行 systemctl isolate default.target 命令。此操作默认为阻塞模式,但可以使用 --no-block 选项转变为无阻塞模式。

rescue    进入救援模式。相当于执行 systemctl isolate rescue.target 命令。此操作默认为阻塞模式,但可以使用 --no-block 选项转变为无阻塞模式。

emergency    进入紧急维修模式。相当于执行 systemctl isolate emergency.target 命令。此操作默认为阻塞模式,但可以使用 --no-block 选项转变为无阻塞模式。

halt    关闭系统,但不切断电源。 注意,此命令仅关闭操作系统内核,但不切断硬件电源。若想彻底切断硬件电源,应该使用下面的 systemctl poweroff 命令。

poweroff    关闭系统,同时切断电源。这是一个无阻塞命令,也就是将关闭操作排入任务队列之后, 不等待其完成就立即返回。

reboot [arg]    关闭系统,然后重新启动。差不多相当于执行 systemctl start reboot.target --job-mode=replace-irreversibly --no-block 命令,并同时向所有用户显示一条警告信息。 这是一个无阻塞命令,也就是将重启操作排入任务队列之后, 不等待其完成就立即返回。

kexec    关闭系统,并通过内核的 kexec 接口重新启动。

exit [EXIT_CODE]    退出服务管理器。此命令仅可用于 systemd 用户实例(也就是以 --user 选项启动的实例)或容器,相当于执行 poweroff 命令。 这是一个无阻塞命令,也就是将退出操作排入任务队列之后,不等待其完成就立即返回。默认退出码为零,但也可以使用 EXIT_CODE 指定退出码(必须是整数)。

switch-root ROOT [INIT]    将系统的根文件系统切换到 ROOT 目录, 并执行新系统上的 INIT 程序(PID=1)。 此命令仅应该在初始内存盘("initrd")中使用。

suspend    休眠到内存。 相当于启动 suspend.target 目标。这是一个无阻塞命令,也就是将休眠操作排入任务队列之后,不等待其完成就立即返回。

hibernate    休眠到硬盘。 相当于启动 hibernate.target 目标。 这是一个无阻塞命令,也就是将休眠操作排入任务队列之后,不等待其完成就立即返回。

hybrid-sleep    进入混合休眠模式。也就是同时休眠到内存和硬盘。 相当于启动 hybrid-sleep.target 目标。 这是一个无阻塞命令,也就是将休眠操作排入任务队列之后,不等待其完成就立即返回。

上一篇下一篇

猜你喜欢

热点阅读