下面的所有選項都位於
"[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對象永遠不會被銷燬。