私のsytemctl状態のときにActive:active(running)行にのみrunningまたはdeadが表示されるのはなぜですか?

私のsytemctl状態のときにActive:active(running)行にのみrunningまたはdeadが表示されるのはなぜですか?

を介してサービスの状態systemd(test.service)を確認しようとしていますsystemctl status test.service。しかし、なぜラインにはActive: active (running)実行中または終了のみが表示され、開始/停止/実行/死は表示されませんか?

答え1

もちろん。私の考えでは、あなたはそうだと思います。間違ったものをつかむ

$ systemd-run --user --no-block --service=oneshot sleep 10
Running as unit: run-r0b9dce0a8bd649d4a2e91d23fe757937.service
$ systemctl status --user run-r0b9dce0a8bd649d4a2e91d23fe757937.service
● run-r0b9dce0a8bd649d4a2e91d23fe757937.service - /usr/bin/sleep 10
   Loaded: loaded (/run/user/1001/systemd/transient/run-r0b9dce0a8bd649d4a2e91d23fe757937.service; transient)
Transient: yes
   Active: activating (start) since Thu 2018-05-17 10:49:43 BST; 9s ago
 Main PID: 7949 (sleep)
   CGroup: /user.slice/user-1001.slice/[email protected]/run-r0b9dce0a8bd649d4a2e91d23fe757937.service
           └─7949 /usr/bin/sleep 10

May 17 10:49:43 alan-laptop systemd[1667]: Starting /usr/bin/sleep 10...

特に、systemdがサービスを開始するかどうかを知ることができるようにするには、サービスが実際に何かを知らなければなりません。 systemdはいくつかの異なる方法をサポートしています。ここにリンクされた答えはそのうちの1つを示しています: "systemdサービスの現在のサービス状態を表示する方法は?「シェルスクリプトまたはC言語でサービスデーモン(長期実行プロセス)を作成するときにこれを行う方法を示します。

答え2

あなたのサービスステータスは現在のステータスになります。サービスが実際に開始された時期を確認するには、ログを確認してください。

journalctl | grep test.service

サービスがいつ開始されたか、どの段階で状態がアクティブな段階であるかが表示されます。

関連情報