「systemctl list-units」の「アクティブ」状態と「実行中」状態の違いは何ですか?

「systemctl list-units」の「アクティブ」状態と「実行中」状態の違いは何ですか?

マニュアルでは、systemctlこれが違いとレベルhigh-low-あると読みました。それはどういう意味ですか?active「オペレーティングシステムの起動時に自動的に起動」を意味し、「現在有効になっている」ことを意味すると思いますrunning

答え1

systemctlマンページから:

「アクティブ:」行はアクティブ状態を示します。値は通常「アクティブ」または「非アクティブ」です。アクティビティとは、単位の種類に応じて開始、バインディング、挿入などを意味します。デバイスは、「アクティブ化」または「非アクティブ化」状態を報告しながら状態を変更する過程にあります。

コマンドsystemctl list-units出力には ACTIVE の 1 列と 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_の答えを詳しく説明します。

activeinactiveおよびactivatingdeactivating単位状態です。 11種類のユニットがあり、各ユニットには有用なサブステータスがあります。

サービスは単なる一種のユニットであり、いくつかのサブステータスを持ちます。

  • 「実行中」とは、サービスプロセスが(通常)現在実行中であるType=simpleことを意味しますExecStart=
  • 「終了」は、サービスプロセスが完了したが、そのデバイスは依然として「アクティブ」状態と見なされることを意味します。Type=oneshotとよく見られますRemainAfterExit=true
  • 「Death」は、サービスプロセスが終了したことを意味するので、そのデバイスは「無効」になります。

サブステータスの詳細については、man systemd.serviceリソースRemainAfterExit=とを参照してくださいman systemd

関連情報