loginctl 查看用户

loginctl 命令可用于检查和控制 systemd 的状态;查看已经登录的用户会话消息。

命令格式:

loginctl [OPTIONS...] {COMMAND} ...

常用选项:

-a, --all
    显示全部属性,无论属性是否已经被设置

-l, --full
    在显示进程树的时候,不对超长行进行截断

-n, --lines=
    显示多少行日志。必须为正整数,默认值"10"


list-sessions
    列出当前所有的会话。这是默认命令

session-status [ID…]

    显示简洁的会话状态信息, 后跟最近的日志。
    如果指定了会话ID,那么仅显示指定的会话, 否则显示当前调用者的会话。
    此命令仅用于输出人类易读的信息, 如果你想输出易于程序分析的信息,
    那么应该使用 show-session 命令

terminate-user USER…
    结束指定用户的所有会话。 这将杀死该用户的所有会话中的所有进程, 同时释放与此用户有关的所有资源。

kill-user USER…
    向指定用户的所有进程发送 --signal= 选项指定的信号。


list-seats
    列出当前本机上的 所有可用席位

seat-status [NAME…]
    显示简洁的席位信息,后跟最近的日志。
    如果指定了席位名,那么仅显示指定的席位, 否则显示当前调用者会话所属的席位。
    此命令仅用于输出人类易读的信息, 如果你想输出易于程序分析的信息,
    那么应该使用 show-seat 命令。

terminate-seat NAME…
    结束指定席位上的所有会话。 这将杀死指定席位上的所有会话进程, 同时释放与之关联的所有资源。

使用实例:

# 列出本机所有的 session
# 不带参数执行 loginctl 和执行 loginctl list-sessions 效果一样
[Linux]$ loginctl
SESSION  UID USER SEAT TTY
  1 1000 xiao      pts/0
  5 1000 xiao      pts/1

2 sessions listed.


# 查看 session 的详细信息
[Linux]$ loginctl show-session 5
EnableWallMessages=no
NAutoVTs=6
KillUserProcesses=no
RebootToFirmwareSetup=no
IdleSinceHint=1627474393034083
UserStopDelayUSec=10s
HandlePowerKey=poweroff
IdleAction=ignore
PreparingForShutdown=no
Docked=no
NCurrentSessions=2
...


# 杀死 session
[Linux]$ loginctl kill-session 976


# 查看登录用户的详细信息
[Linux]$ loginctl show-user 1000
UID=1000
GID=1000
Name=xiao
Timestamp=Wed 2021-07-28 18:53:32 CST
RuntimePath=/run/user/1000
Slice=user-1000.slice
...


# 查看登录用户的状态
[Linux]$ loginctl user-status xiao
xiao (1000)
           Since: Wed 2021-07-28 18:53:32 CST; 1h 25min ago
           State: active
        Sessions: 5 *1
          Linger: no
            Unit: user-1000.slice
                  ├─session-1.scope
                  │ ├─730 sshd: xiao [priv]
                  │ ├─747 sshd: xiao@pts/0
                  │ ├─748 -bash
                  │ └─851 vim 00_loginctl.rst
                  ├─session-5.scope
                  │ ├─852 sshd: xiao [priv]
                  │ ├─858 sshd: xiao@pts/1
                  │ ├─859 -bash
                  │ ├─862 su
                  │ ├─863 bash
                  │ ├─934 loginctl user-status xiao
                  │ └─935 pager
                  └─user@1000.service
                    └─init.scope
                      ├─733 /lib/systemd/systemd --user
                      └─734 (sd-pam)

Jul 28 18:53:33 debian systemd[733]: Listening on GnuPG cryptographic agent and passphrase
Jul 28 18:53:33 debian systemd[733]: Listening on GnuPG cryptographic agent (ssh-agent emu
...