“systemctl list-units”的“active”和“running”状态有什么区别?

“systemctl list-units”的“active”和“running”状态有什么区别?

我从手册中看到,systemctl这就是区别high-low-级别。这意味着什么?我想这active意味着“操作系统启动时自动启动”并且running意味着“现在处于活动状态”。

答案1

systemctl联机帮助页:

“Active:”行显示活动状态。该值通常是“活动”或“非活动”。活动可能意味着启动、绑定、插入等,具体取决于单元类型。该单元还可以处于改变状态的过程中,报告“激活”或“去激活”的状态。

命令systemctl list-units输出有一列表示 ACTIVE,另一列表示 SUB。前者显示单元的活动状态,而后者显示子状态,这取决于单元。请参阅下面的示例( 的输出systemctl list-units --all):

UNIT                                     LOAD   ACTIVE   SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount        loaded active   running   Arbitrary Executable File Formats File System Automount Point
sys-module-configfs.device               loaded active   plugged   /sys/module/configfs
var.mount                                loaded active   mounted   /var
dracut-shutdown.service                  loaded active   exited    Restore /run/initramfs on shutdown
systemd-ask-password-plymouth.path       loaded active   waiting   Forward Password Requests to Plymouth Directory Watch
sssd-kcm.service                         loaded inactive dead      SSSD Kerberos Cache Manager

答案2

只是为了详细说明dr_的答案。

activeinactiveactivatingdeactivating是单位状态。有 11 种不同类型的单位,每种都有自己有用的子状态。

服务只是一种类型的单元,并且具有几个子状态。

  • “正在运行”意味着服务的进程(通常Type=simpleExecStart=)当前正在运行。
  • “退出”意味着服务的进程已完成,但该单元仍被视为“活动”。这常见于Type=oneshot与 结合RemainAfterExit=true
  • “死亡”意味着服务的进程结束,因此该单元现在变得“不活动”。

有关子状态的信息,请参阅man systemd.service参考资料RemainAfterExit=man systemd

相关内容