下面的所有选项都位于
"[Login]" 小节:
NAutoVTs=
必须设为一个正整数,
表示默认最多可以自动启动多少个虚拟终端。
当用户切换到一个先前未曾使用的虚拟终端时,
将根据该虚拟终端的名称自动从
autovt@.service 模版实例化一个
例如 autovt@tty4.service
这样的服务单元。
默认情况下,autovt@.service
是一个指向 getty@.service
的软连接。
换句话说,当用户切换到一个先前未曾使用的虚拟终端时,"login:"登录提示符是动态启动的。
因此,此选项实际上相当于设置了允许启动多少个
agetty[1]
文本登录界面(与虚拟终端一一对应)。
如果某个虚拟终端已经被其他子系统(例如图形登录界面)占用,
那么将不会自动启动此虚拟终端。
注意,ReserveVT=
中的虚拟终端
总会被自动启动,
即使这些终端并不在
NAutoVTs= 的范围内。
默认值是"6"。若设为"0"则表示禁止自动启动任何虚拟终端,
也就是禁止自动从
autovt@.service 模版实例化。
ReserveVT=
必须设为一个表示终端编号的正整数,
表示无条件的为该终端从
autovt@.service
模版实例化一个服务单元(见上文)。
被此选项选中的虚拟终端将被无条件的标记为"忙碌"状态,
以确保不被任何其他子系统占用。
此选项可用于确保无论其他子系统占用了多少虚拟终端,
在特定编号的终端上总有一个文本界面的登录
agetty[1] 可用。
默认值是"6",
也就是在 Alt-F6
上总有一个文本界面的"login:"登录提示符。
若设为"0"则表示禁止此特性。
KillUserProcesses=
接受一个布尔值。控制在用户退出登录会话时,
是否杀死该用户的进程。如果设为"yes",
那么与此会话对应的 scope
单元中所包含的所有进程都将被杀死。
如果设为"no",那么与此会话对应的
scope
单元将会被"遗弃",
并且其中包含的所有进程都将被保留(任由其自生自灭)。
默认值是 "yes" 。
参见下面的
KillOnlyUsers= 与
KillExcludeUsers= 选项。
根据 linger(逗留)
设置的不同,用户进程除了可以运行在会话中,
还可以运行在 user@.service
用户管理单元中。
这样就允许用户运行独立于登录会话的进程。参见
loginctl(1) 的 enable-linger
命令。
注意,设置
KillUserProcesses=yes 将破坏 screen(1)
与 tmux(1)
之类的工具(除非它们被移出了会话
scope 单元之外)。参见
systemd-run(1) 的例子。
KillOnlyUsers=, KillExcludeUsers=
设为一个空格分隔的用户名列表,
以影响 KillUserProcesses=
的效果: 若 KillOnlyUsers=
非空, 则表示 KillUserProcesses=yes
仅对列表内的用户有效。
若 KillExcludeUsers= 非空,
则表示 KillUserProcesses=yes
仅对列表外的用户有效。
KillOnlyUsers= 默认值为空,
KillExcludeUsers= 默认值为 "root"
, 并且 KillExcludeUsers=
的优先级比 KillOnlyUsers=
更高。
注意,若选项值为空则表示忽略此选项(相当于不存在此选项)。
IdleAction=
当系统持续处于空闲状态超过
IdleActionSec=
所设置的时间后,
应该执行何种操作:
"ignore"(无操作),
"poweroff"(关闭系统并切断电源),
"reboot"(重新启动),
"halt"(关闭系统但不切断电源),
"kexec"(调用内核"kexec"函数),
"suspend"(休眠到内存),
"hibernate"(休眠到硬盘),
"hybrid-sleep"(同时休眠到内存与硬盘),
"lock"(锁屏) 。 默认值是
"ignore"
注意,此功能依赖于用户会话能够正确的报告空闲状态。
执行此处设置的动作需要满足下列全部条件:
(1)系统中不存在"idle
inhibitor[2]"锁(禁止进入空闲状态的锁)
(2)所有会话都报告说它们正处于空闲状态,并且持续处于空闲状态超过了下文
IdleActionSec=
所设置的时间。
IdleActionSec=
当系统持续处于空闲状态超过此处设置的时长之后
将会自动执行 IdleAction=
设定的动作。
可以使用下面的时间单位后缀:"ms",
"s", "min", "h", "d"
,若仅设为一个正整数,那么单位是秒。
InhibitDelayMaxSec=
当系统中存在"delay
inhibitor[2]"延迟锁时,关闭/休眠系统的请求将被临时延迟一段时间。
此选项可用于设置上述延迟的最大时长。
若超过这个时长之后,延迟锁依然未被释放,那么将执行关闭/休眠系统的动作。
可以使用下面的时间单位后缀:"ms",
"s", "min", "h", "d"
,若仅设为一个正整数,那么单位是秒。
默认值是5秒。
HandlePowerKey=, HandleSuspendKey=,
HandleHibernateKey=, HandleLidSwitch=,
HandleLidSwitchDocked=
当按下硬件按钮(关机、休眠到内存、休眠到硬盘、合上显示屏)时,
应该执行何种操作:
"ignore"(无操作),
"poweroff"(关闭系统并切断电源),
"reboot"(重新启动),
"halt"(关闭系统但不切断电源),
"kexec"(调用内核"kexec"函数),
"suspend"(休眠到内存),
"hibernate"(休眠到硬盘),
"hybrid-sleep"(同时休眠到内存与硬盘),
"lock"(锁屏) 。 注意,
只监视带有 "power-switch"
标签的 输入设备的
key(按下按钮)/lid(合上显示屏)
事件。
如果主机插入了一个扩展坞(docking
station)
或者连接了多个显示器,
那么"合上显示屏"将执行
HandleLidSwitchDocked= 动作,
否则将执行 HandleLidSwitch=
动作。
下面是各选项的默认值:
HandlePowerKey=poweroff 、 HandleSuspendKey=suspend
、 HandleLidSwitch=suspend 、
HandleLidSwitchDocked=ignore 、
HandleHibernateKey=hibernate
PowerKeyIgnoreInhibited=,
SuspendKeyIgnoreInhibited=, HibernateKeyIgnoreInhibited=,
LidSwitchIgnoreInhibited=
设置硬件按钮(关机、休眠到内存、休眠到硬盘、合上显示屏)
所触发的操作(见上文)是否应该忽略
inhibitor[2] 锁的存在。 "no"
表示遵守应用所持有的
inhibitor 锁,
仅当所有的锁都失效以后才执行所触发的操作。
"yes" 表示无视 inhibitor
锁的存在,
无条件的立即执行所触发的操作。
下面是各选项的默认值:
PowerKeyIgnoreInhibited=no 、 SuspendKeyIgnoreInhibited=no
、 HibernateKeyIgnoreInhibited=no 、
LidSwitchIgnoreInhibited=yes 。
HoldoffTimeoutSec=
当开机/唤醒时间尚未超出此处设置的时间长度时,
systemd
将延迟响应合上显示屏(lid)硬件事件。
为了能够正确检测可热插拔的外接显示器与扩展坞,
在刚开机之后的一段时间内忽略lid事件是非常有必要的。
若设为零,systemd
将会立即响应lid事件,
但这有可能在内核完成初始化所有热插拔设备之前。
只要你不在乎让 systemd
去管理在系统关闭时被插入或拔出的设备,
那么就可以设为零。
默认值是30秒。
RuntimeDirectorySize=
为每个已登录用户设置运行时目录($XDG_RUNTIME_DIR)的最大尺寸。
若设为绝对大小,
则可以使用基于1024的字节后缀:K,
M, G, T 。
若设为相对大小,
则可以设为一个以物理内存大小为基准的百分数(以
"%" 为后缀)。
默认值是 10% 。
注意,这里设置的值仅用于限制运行时目录尺寸的上限,
因为运行时目录位于内存中(tmpfs),
所以实际所占用的内存大小是随着目录内容的变化而变化的。
InhibitorsMax=
控制最多允许同时存在多少个
inhibitor 锁。 默认值是 8192
SessionsMax=
控制最多允许同时管理多少个用户会话。默认值是
8192 。 根据PAM栈中 pam_systemd.so
模块的不同配置,
超出数量限制的登录会话可能会被直接拒绝、也可能会被允许登录但不被
systemd-logind 追踪。
UserTasksMax=
限制每个用户可同时运行的最大操作系统任务数。
这实际上是设置了每个用户的
slice 单元的
TasksMax=
的值。详见
systemd.resource-control(5)
手册。默认值是 33%
,对于默认设置的内核来说,在主机上等于
10813
,但是在容器中的值可能会更小。
RemoveIPC=
当用户完全退出登录时(也就是退出最后一个登录会话时),
是否销毁所有属于该用户的
SysV 与 POSIX IPC 对象。
这些IPC对象包括:SysV
信号/共享内存/消息队列、POSIX
共享内存/消息队列。
默认值 "yes"
表示销毁,这样可以确保当用户完全退出登录之后,不会再占用任何IPC资源。
注意,无论如何设置此选项,root
用户的IPC对象永远不会被销毁。