LOGIND.CONF(5)

NAME
logind.conf, logind.conf.d - 登陸管理器配置檔案

SYNOPSIS

/etc/systemd/logind.conf

/etc/systemd/logind.conf.d/*.conf

/run/systemd/logind.conf.d/*.conf

/usr/lib/systemd/logind.conf.d/*.conf

描述

上述配置檔案用於控制 systemd-logind.service(8) 登陸管理器的行為。

配置目錄及其優先順序

預設設定是在編譯期間確定的， 所以僅在確實需要修改預設設定的情況下， 才需要使用配置檔案。位於 /etc/systemd/ 目錄中的初始配置檔案， 僅包含了展示選項預設值的註釋， 目的在於方便系統管理員檢視和直接修改。

如果軟體包想要自定義某些預設設定， 那麼必須將自定義的配置檔案安裝到 /usr/lib/systemd/*.conf.d/ 目錄中。 /etc/ 目錄僅供系統管理員使用。 系統管理員可以利用下面的邏輯來覆蓋預設設定： 主配置檔案最先被讀取， 優先順序也最低。 所有 *.conf.d/ 中的配置檔案 都會覆蓋主配置檔案中的設定。 所有 *.conf.d/ 中的配置檔案(無論位於哪個目錄中)， 統一按照檔名的字典順序處理。 如果在多個配置檔案中設定了同一個選項， 那麼僅以檔名最靠後(字典順序)的那一個為準。 為了便於排序， 建議給所有 *.conf.d/ 中的配置檔案 都加上兩位十進位制數字的檔名字首。

如果系統管理員想要遮蔽 /usr/lib/ 目錄中的某個配置檔案， 那麼最佳做法是在 /etc/ 目錄中 建立一個指向 /dev/null 的同名符號連結， 即可徹底遮蔽 /usr/lib/ 目錄中的同名檔案。

選項

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

參見

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

NOTES

1.  agetty
    [set $man.base.url.for.relative.links]//man/agetty.html

2.  inhibitor
    http://www.freedesktop.org/wiki/Software/systemd/inhibit

跋
本頁面中文版由中文 man 手冊頁計劃提供。

翻譯人員：金步國
金步國作品集：http://www.jinbuguo.com
中文 man 手冊頁計劃：https://github.com/man-pages-zh/manpages-zh