Debian

使用 systemd 的“askfirst”getty(“按輸入鍵啟動此控制台”)

  • October 18, 2015

在 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/questions/236880