解決linux下終端無法輸入的假死問題


  有時在linux下shell終端中,會突然出現終端應用卡死,無法接受鍵盤輸入, 但是其它分屏, 系統都是正常的。這本來是一個終端的很老的功能, 叫軟件流控制(XON/XOFF flow control),具體就是當client(terminal emulator), 也就是常用的終端模擬器無法接受更多的數據的時, 終端會發送一個 "XOFF" 信號 告訴發送數據端暫停發送, 直到收到"XON"信號,其中發送的 "XOFF" 是告訴內核的 tty 驅動將正在發送數據的進程設置為休眠狀態, 直到 tty 驅動發送 "XON" 告訴內核恢復進程, 就好像它從來沒有停過一樣。

  默認情況下,Ctrl-s會啟用終端的滾動鎖定, 此時禁用終端模擬器的滾動功能 (通過發送 "XOFF" 信號暫停軟件的輸出 ),終端軟件沒有任何輸出,造成假死的現象,一般情況都是無意識按下了ctrl+s快捷鍵而已。相應的,Ctrl-q 會禁用滾動鎖定, 恢復終端滾動 (通過發送 "XON" 信號來恢復軟件的輸出). 

  可以修改配置文件, 在~/.bash_profile 或者~/.bashrc的配置文件里面加上下面的參數並且重啟加載bash配置即可要禁用這個功能,就不會假死了:

stty -ixon
source  .bashrc

  順便提一下,linux下終端ctrl+z命令會將當前任務切換到后台執行,就無法看到了,可以使用fg命令恢復至前台。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM