本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。
本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:
由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。
loginctl — 控制 systemd 登录管理器
loginctl
[OPTIONS...] {COMMAND} [NAME...]
能够识别的命令行选项如下:
--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-session
或 kill-user 连用,
指定向选中的进程发送什么信号。
必须设为众所周知的信号名称,例如
SIGTERM
(默认值),
SIGINT
,
SIGSTOP
之类
-n
, --lines=
¶与 user-status 或 session-status 连用, 控制显示多少行日志(从最新的一条日志开始计算)。 必须设为一个正整数,默认值是"10"。
-o
, --output=
¶与 user-status
或 session-status 连用,
控制日志的输出格式。
可用值参见
journalctl(1) 手册。
默认为 "short
"
-H
, --host=
¶操作指定的远程主机。可以仅指定一个主机名(hostname),
也可以使用 "username@hostname
" 格式。
hostname 后面还可以加上
SSH监听端口(以冒号":
"分隔)与容器名(以正斜线"/
"分隔),
也就是形如 "hostname:port/container
" 的格式,
以表示直接连接到指定主机的指定容器内。
操作将通过SSH协议进行,以确保安全。
可以通过
machinectl -H
HOST
命令列出远程主机上的所有容器名称。IPv6地址必须放在方括号([])内。
-M
, --machine=
¶--no-pager
¶不将程序的输出内容管道(pipe)给分页程序。
--no-legend
¶不输出列标题, 也就是不在输出列表的头部和尾部显示字段的名称。
-h
, --help
¶--version
¶能够识别的命令如下:
列出当前所有的会话。这是默认命令。
ID
…]¶显示简洁的会话状态信息, 后跟最近的日志。 如果指定了会话ID,那么仅显示指定的会话, 否则显示当前调用者的会话。 此命令仅用于输出人类易读的信息, 如果你想输出易于程序分析的信息, 那么应该使用 show-session 命令
ID
…]¶如果指定了会话ID,
那么显示指定会话的各项属性值,
否则显示登录管理器自身的各项属性值。
除非使用了 --all
选项,
否则空属性将被忽略。
还可以使用 --property=
选项指定仅显示个别属性。
此命令仅用于输出易于程序分析的信息,
如果你想输出人类易读的信息,
那么应该使用 session-status
命令。
ID
]¶激活会话。 也就是将处于后台的会话切换到前台(如果同席位的另一个会话正处于前台)。 如果指定了会话ID, 那么将激活指定的会话, 否则将激活当前调用者的会话。
ID
…], unlock-session [ID
…]¶锁定/解锁会话 (如果会话支持屏幕锁)。 如果指定了会话ID,那么将锁定/解锁指定的会话, 否则将锁定/解锁当前调用者的会话。
锁定/解锁 所有支持屏幕锁的会话。
ID
…¶结束指定的会话。 也就是 杀死指定会话的所有进程、释放所有与此会话相关的资源。
ID
…¶向指定的会话进程发送信号。
使用 --kill-who=
指定目标进程,
使用 --signal=
指定
要发送的信号。
列出当前登录的用户
USER
…]¶显示简洁的已登录用户状态信息, 后跟最近的日志。 如果指定了一个或多个用户名或UID, 那么显示指定用户的状态信息, 否则仅显示当前会话用户的状态信息。 此命令仅用于输出人类易读的信息, 如果你想输出易于程序分析的信息, 那么应该使用 show-user 命令。
USER
…]¶如果指定了用户名或UID,
那么显示指定用户的各项属性值,
否则显示登录管理器自身的各项属性值。
除非使用了 --all
选项,
否则空属性将被忽略。
还可以使用 --property=
选项来显示指定的属性。
此命令仅用于输出易于程序分析的信息,
如果你想输出人类易读的信息,
那么应该使用 user-status
命令。
USER
…], disable-linger [USER
…]¶启用/禁止用户逗留(相当于保持登录状态)。 如果指定了用户名或UID, 那么系统将会在启动时自动为这些用户派生出用户管理器, 并且在用户登出后继续保持运行。 这样就可以允许未登录的用户在后台运行持续时间很长的服务。 如果没有指定任何参数, 那么将作用于当前调用者的用户。
参见 logind.conf(5)
中的 KillUserProcesses=
指令。
USER
…¶结束指定用户的所有会话。 这将杀死该用户的所有会话中的所有进程, 同时释放与此用户有关的所有资源。
USER
…¶向指定用户的所有进程发送
--signal=
选项指定的信号。
列出当前本机上的 所有可用席位
NAME
…]¶显示简洁的席位信息,后跟最近的日志。 如果指定了席位名,那么仅显示指定的席位, 否则显示当前调用者会话所属的席位。 此命令仅用于输出人类易读的信息, 如果你想输出易于程序分析的信息, 那么应该使用 show-seat 命令。
NAME
…]¶如果指定了席位名,
那么显示指定席位的各项属性值,
否则显示登录管理器自身的各项属性值。
除非使用了 --all
选项,
否则空属性将被忽略。
还可以使用 --property=
选项来显示指定的属性。
此命令仅用于输出易于程序分析的信息,
如果你想输出人类易读的信息,
那么应该使用 seat-status
命令。
NAME
DEVICE
…¶将指定的设备(DEVICE)
持久的连接到指定的席位(NAME)上。
设备可以用相对于 /sys
文件系统的设备路径表示。
要创建一个新席位,至少需要连接一个显卡。
席位名称必须以 "seat
" 开头,
后跟 a–z, A–Z, 0–9, "-", "_" 字符。
要想从席位上删除一个设备,
可以将此设备连接到另一个席位,
或者使用 flush-devices 命令。
删除所有先前用 attach 命令连接的设备 (同时也删除了所有先前用 attach 命令创建的席位)。 调用此命令之后,所有自动生成的席位将会被保留, 同时所有席位设备将会连接到自动生成的席位上。
NAME
…¶结束指定席位上的所有会话。 这将杀死指定席位上的所有会话进程, 同时释放与之关联的所有资源。
例 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
" )