使用 systemd 的“askfirst”getty(“按輸入鍵啟動此控制台”)
在 Debian Jessie 系統上
systemd
,如何配置終端以顯示類似消息Press enter to activate this console
,並且在按 Enter 之前不會出現登錄提示?
inittab
這可以通過配置來完成,askfirst
但如何做到這一點systemd
呢?如果可能的話,我寧願調整適當的配置文件,而不是
systemd
直接弄亂現有的單元文件——就像有logind.conf
但不幸的是,在這種情況下,配置文件對 AFAIK 沒有幫助。
/etc/inittab
這可以通過配置來完成askfirst
……實際上,它不能。
init
這是 Linux System 5 複製中不存在的 BusyBox機制,init
這是它們的/etc/inittab
配置文件不同的幾種方式之一。在 systemd Linux 作業系統上做類似事情的方式取決於一個人實際在做什麼。儘管您顯然在這裡,但不一定將其僅用於互動式終端登錄。
的一種常見用途
askfirst
是不讓getty
+login
系統為未使用的虛擬終端執行。systemd 不需要為此設置非預設設置。使用 systemd,logind
打包的服務已經安排為僅在虛擬終端切換到前台時按需啟動服務。終端登錄不會在尚未切換到的虛擬終端上執行(並且不是第一個或“保留的”虛擬終端)。autovt@*N*.service
稍有不同的語義,即在切換到虛擬終端並按下 enter之前不啟動
getty
+系統,實現起來稍微困難一些,因為它們涉及打開選項或插入列印出消息並等待的程序連結到之前的輸入行。login``getty``getty
只有少數
getty
程序具有這樣的選項,例如 Peter Orbaek 的agetty
具有--wait-cr
. 大多數(如 Felix von Leitnerfgetty
和 Florian La Roche 的mingetty
)沒有。其餘的(例如 Gert Doering 的mgetty
)是需要調製解調器及其所有附件的——當然虛擬終端沒有這些,這使得它們適應虛擬終端的使用有些棘手。鍊式載入相當於
--wait-cr
虛擬終端上的一個簡單程序,它列印一條消息,然後從終端讀取一行(在規範模式下),然後鍊式載入,是一個相當簡單的程序。使用這些選項,使用不同的
getty
程序,或在“之前”插入實用程序鏈載入程序,都涉及在withgetty
下編寫一個或多個單元文件覆蓋文件(更改設置)或簡單地指向自己設計的本地單元文件在。/etc/systemd/system``systemctl edit``ExecStart``autovt@.service``getty@.service
進一步閱讀
- https://unix.stackexchange.com/a/194218/5132
- 喬納森·德博因·波拉德 (2015)。
login-prompt
. 小吃指南。JdeBP 的軟體。- https://askubuntu.com/a/659268/43344
- https://unix.stackexchange.com/a/233855/5132
- 維爾納芬克和卡雷爾扎克。
agetty
. Unbuntu 15.04 手冊頁。