Ctrl-C 不適用於 pppd 非分離會話
我有一個 Mini2440 ARM 板,我在上面安裝了一個基本的 Debian 6.0 系統,使用
multistrap
.我曾經
tmux
在不同的視窗中執行多個程序/etc/rc.local
。我使用它的串列埠和一個在該埠上執行的 inittab 條目連接到板getty
。我picocom
用作串列通信器。當 root 登錄時,
~/.bashrc
將他附加到已經執行的 tmux 伺服器上,並且可以輕鬆監控程序。實際的命令是exec tmux attach-session -t "main"
. tmux 使用預設配置執行。一切正常,除了其中一個程序(周圍的 shell 腳本
pppd
)沒有Ctrl``c
從終端接收,而其他程序可以。也Ctrl``\
有效。也kill -INT <pppd_pid>
有效,但kill -INT <shellscript_pid>
沒有。我真的需要
Ctrl``c
工作。這個設置有什麼問題?編輯:這是
stty -a
shell腳本中的輸出,就在之前pppd
:speed 38400 baud; rows 23; columns 80; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0; -parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel -iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke
因為它只是
pppd
有這個問題的程序,我認為它與它或它的配置有關,但是當我pppd
在 tmux 之外執行時,Ctrl-C 可以工作。pppd
使用nodetach
選項執行,因此它保持在終端前台。我還在我的開發機器(amd64 上的 Debian 6.0)上對其進行了測試,結果相同。
原來這是
pppd
發行版中使用的特定版本中的一個錯誤。我查了一下,以前和以後的版本pppd
都沒有這個問題。此外,該問題並非特定於該拱門和平台或tmux
. 如果pppd
在 shell 腳本中執行,它不處理 Ctrl-C,而在 shell 之外,它沒有問題。
你有沒有想過嘗試一下 GNU 螢幕?老實說,我對 tmux 沒有太多經驗,但 screen 總是做得很好。