systemctl

作者: 小尘埃_bf52 | 来源:发表于2020-04-07 17:04 被阅读0次

    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 目标。 这是一个无阻塞命令,也就是将休眠操作排入任务队列之后,不等待其完成就立即返回。

    相关文章

      网友评论

          本文标题:systemctl

          本文链接:https://www.haomeiwen.com/subject/pyegphtx.html