如何釋放 Getty 擁有的串口
我有成對的機器。它們通過零調製解調器串列電纜相互連接。這些機器有時會出現故障,診斷它們的唯一方法是通過該電纜,使用該對中的另一個節點。
這些設備已將 Getty 配置為在串列設備上執行
/dev/ttyAMA0
。這是預設設置,我希望盡可能接近預設配置。這是問題所在:
我似乎無法讓 Getty 放棄對設備的控制,所以我可以使用類似
minicom
登錄其他設備的方法。不幸的是,簡單地殺死getty
是行不通的,因為某些東西似乎會立即重新啟動它。我怎樣才能
getty
停下來?
(順便說一句,我從未見過拼寫“GeTTY”。我認為它不正確。)
簡短的回答是,您可以
getty
通過將其註釋掉/etc/inittab
並執行init q
以重新讀取配置來禁用它。除非您使用的是 systemd 或 Upstart,但既然您沒有這麼說,我會假設您不是。更長的答案是您的設置存在內在問題並且存在缺陷。在
getty
兩個串列埠上執行時,這兩個getty
程序冒著開始無休止地互相聊天的風險。也就是說,一個將發送一個提示,另一個將其解釋為使用者名,這導致它產生自己的提示,該提示在原始端被解釋為使用者名,以此類推。處理此問題的正確方法是使用兩個串列埠,每個方向一個。系統 1 上的控制台串口連接到系統 2 上的額外串口,系統 2 上的控制台串口連接到系統 1 上的額外串口。由於兩個系統上的“額外”串口從不執行
getty
(只有控制台串列埠可以),永遠不會getty
禁用,該埠可以直接由screen
orcu
等使用……對於“額外”的串口,如果系統沒有提供足夠的內置串口,您可以使用 USB 串口適配器。因為這些埠只有在系統完全啟動後才能訪問(與控制台串列埠不同),所以它們位於 USB 匯流排上是可以的,直到引導序列的中途才會被初始化。