systemdで実行されているユーザーとそのプロセスに関する情報を取得するには?

systemdで実行されているユーザーとそのプロセスに関する情報を取得するには?

誰がいつログインしたのか、そして現在彼の制御下でどのプロセスが実行されているのかを知りたい場合は、systemdでどうすればよいですか?

ベストアンサー1

これを行うにはシステムは必要ありません。しかし、これを行うシステム方法があります。しかもsystemd-logind、同じAPIを提供するデーモンやプログラムを実行する限り。

まず、セッションのリストを取得します。

$ systemd-loginctl list-sessions
   SESSION        UID USER             SEAT            
       c89       1000 jdebp            seat0           

1 sessions listed.

その後、各セッションのステータスを表示したいと思います。

$ systemd-loginctl session-status c89
c89 - jdebp (1000)
       Since: Tue, 07 Oct 2014 20:16:20 +0100; 15s ago
      Leader: 24453 (3)
        Seat: seat0; vc6
         TTY: /dev/tty6
     Service: login; type tty; class user
      Active: yes
      CGroup: /user/jdebp/c89
          ├ 24453 login
          ├ 25661 -zsh
          └ 25866 systemd-loginctl session-status c89

システムの人々は最新バージョンloginctlに名前を変更しました。logind

追加読書

おすすめ記事