当前位置: 首页 > 文档资料 > systemd 中文手册 >

loginctl 中文手册

优质
小牛编辑
139浏览
2023-12-01

名称

loginctl — 控制 systemd 登录管理器

大纲

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

描述

loginctl可用于内省与控制systemd(1)登录管理服务systemd-logind.service(8)

选项

能够识别的命令行选项如下:

--no-ask-password

在执行特权操作时 不向用户索要密码。

-p, --property=

在显示 session/user/seat 属性时,仅显示此处指定的属性。若未指定,则显示全部属性。参数必须是属性名(例如"Sessions")。可以多次使用此选项 以指定多个属性。

--value

在显示 session/user/seat 属性时,只显示属性值、不显示 属性名与等号。

-a, --all

在显示 session/user/seat 属性时,显示全部属性,无论这些属性是否已经被设置。

-l, --full

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

--kill-who=

kill-session 连用,指定杀死哪个进程。leader 表示仅杀死会话的领导进程; all 表示杀死会话的所有进程。默认值为 all

-s, --signal=

kill-sessionkill-user 连用,指定向选中的进程发送什么信号。必须设为众所周知的信号名称,例如 SIGTERM(默认值), SIGINT, SIGSTOP 之类

-n, --lines=

user-statussession-status 连用,控制显示多少行日志(从最新的一条日志开始计算)。必须设为一个正整数,默认值是"10"。

-o, --output=

user-statussession-status 连用,控制日志的输出格式。可用值参见 journalctl(1) 手册。默认为 "short"

-H, --host=

操作指定的远程主机。可以仅指定一个主机名(hostname),也可以使用 "username@hostname" 格式。hostname 后面还可以加上SSH监听端口(以冒号":"分隔)与容器名(以正斜线"/"分隔),也就是形如 "hostname:port/container" 的格式,以表示直接连接到指定主机的指定容器内。操作将通过SSH协议进行,以确保安全。可以通过machinectl -HHOST 命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。

-M, --machine=

在本地容器内执行操作。必须明确指定容器的名称。

--no-pager

不将程序的输出内容管道(pipe)给分页程序。

--no-legend

不输出列标题,也就是不在输出列表的头部和尾部显示字段的名称。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

命令

能够识别的命令如下:

会话命令

list-sessions

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

session-status [ID…]

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

show-session [ID…]

如果指定了会话ID,那么显示指定会话的各项属性值,否则显示登录管理器自身的各项属性值。除非使用了 --all 选项,否则空属性将被忽略。还可以使用 --property= 选项指定仅显示个别属性。此命令仅用于输出易于程序分析的信息,如果你想输出人类易读的信息,那么应该使用 session-status 命令。

activate [ID]

激活会话。也就是将处于后台的会话切换到前台(如果同席位的另一个会话正处于前台)。如果指定了会话ID,那么将激活指定的会话,否则将激活当前调用者的会话。

lock-session [ID…], unlock-session [ID…]

锁定/解锁会话 (如果会话支持屏幕锁)。如果指定了会话ID,那么将锁定/解锁指定的会话,否则将锁定/解锁当前调用者的会话。

lock-sessions, unlock-sessions

锁定/解锁 所有支持屏幕锁的会话。

terminate-session ID

结束指定的会话。也就是 杀死指定会话的所有进程、释放所有与此会话相关的资源。

kill-session ID

向指定的会话进程发送信号。使用 --kill-who= 指定目标进程,使用 --signal= 指定 要发送的信号。

用户命令

list-users

列出当前登录的用户

user-status [USER…]

显示简洁的已登录用户状态信息,后跟最近的日志。如果指定了一个或多个用户名或UID,那么显示指定用户的状态信息,否则仅显示当前会话用户的状态信息。此命令仅用于输出人类易读的信息,如果你想输出易于程序分析的信息,那么应该使用 show-user 命令。

show-user [USER…]

如果指定了用户名或UID,那么显示指定用户的各项属性值,否则显示登录管理器自身的各项属性值。除非使用了 --all 选项,否则空属性将被忽略。还可以使用 --property= 选项来显示指定的属性。此命令仅用于输出易于程序分析的信息,如果你想输出人类易读的信息,那么应该使用 user-status 命令。

enable-linger [USER…], disable-linger [USER…]

启用/禁止用户逗留(相当于保持登录状态)。如果指定了用户名或UID,那么系统将会在启动时自动为这些用户派生出用户管理器,并且在用户登出后继续保持运行。这样就可以允许未登录的用户在后台运行持续时间很长的服务。如果没有指定任何参数,那么将作用于当前调用者的用户。

参见 logind.conf(5) 中的 KillUserProcesses= 指令。

terminate-user USER

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

kill-user USER

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

席位命令

list-seats

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

seat-status [NAME…]

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

show-seat [NAME…]

如果指定了席位名,那么显示指定席位的各项属性值,否则显示登录管理器自身的各项属性值。除非使用了 --all 选项,否则空属性将被忽略。还可以使用 --property= 选项来显示指定的属性。此命令仅用于输出易于程序分析的信息,如果你想输出人类易读的信息,那么应该使用 seat-status 命令。

attach NAME DEVICE

将指定的设备(DEVICE) 持久的连接到指定的席位(NAME)上。设备可以用相对于 /sys 文件系统的设备路径表示。要创建一个新席位,至少需要连接一个显卡。席位名称必须以 "seat" 开头,后跟 a–z, A–Z, 0–9, "-", "_" 字符。要想从席位上删除一个设备,可以将此设备连接到另一个席位,或者使用 flush-devices 命令。

flush-devices

删除所有先前用 attach 命令连接的设备 (同时也删除了所有先前用 attach 命令创建的席位)。调用此命令之后,所有自动生成的席位将会被保留,同时所有席位设备将会连接到自动生成的席位上。

terminate-seat NAME

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

退出状态

返回值为 0 表示成功,非零返回值表示失败代码。

例子

例 1. 查询用户状态

$ loginctl user-status
fatima (1005)     Since: Sat 2016-04-09 14:23:31 EDT; 54min ago     State: active  Sessions: 5 *3      Unit: user-1005.slice            ├─user@1005.service              …            ├─session-3.scope              …            └─session-5.scope              ├─3473 login -- fatima              └─3515 -zsh

Apr 09 14:40:30 laptop login[2325]: pam_unix(login:session):                 session opened for user fatima by LOGIN(uid=0)
Apr 09 14:40:30 laptop login[2325]: LOGIN ON tty3 BY fatima

有 3 与 5 两个会话。会话 3 是一个图形会话,以星号(*)标记。同时还显示了两个对应的scope 单元中的进程树。


环境变量

$SYSTEMD_PAGER

指定分页程序。仅在未指定 --no-pager 选项时有意义。此变量会覆盖 $PAGER 的值。如果 $SYSTEMD_PAGER$PAGER 都未设置,那么将会依次尝试如下常见的分页程序:less(1),more(1),如果最终仍未找到分页程序,那么将不使用分页。将此变量设为空字符串或 "cat" 等价于使用 --no-pager 选项。

$SYSTEMD_LESS

用于覆盖默认传递给 less程序的命令行选项("FRSXMK")。

如果 $SYSTEMD_LESS 的值不含 "K" ,并且使用 less 作为分页程序,那么Ctrl+C 信号将会被忽略。这将允许 less 自己处理Ctrl+C 信号。

$SYSTEMD_LESSCHARSET

用于覆盖默认传递给 less 程序的字符集。(如果终端兼容 UTF-8 ,那么默认值是 "utf-8" )

参见

systemd(1),systemctl(1),systemd-logind.service(8),logind.conf(5)