Mini2440 ARMボードを使用しており、ベースのDebian 6.0システムをを使用して配置しましたmultistrap
。
私はtmux
いくつかのプロセスを異なるウィンドウで実行していました/etc/rc.local
。シリアルポートとinittabエントリを使用してボードに接続し、そのポートで実行getty
します。picocom
シリアルコミュニケーターとして使用します。
rootがログイン~/.bashrc
すると、すでに実行中のtmuxサーバーに接続され、プロセスを簡単に監視できます。実際のコマンドはexec tmux attach-session -t "main"
です。tmuxはデフォルトの設定で実行されます。
プロセスの1つ(シェルスクリプトを中心とするpppd
)がCtrlc端末から受信しないのを除いて、すべてが機能しますが、他のプロセスは機能します。またCtrl\動作します。また、 kill -INT <pppd_pid>
動作しますが、kill -INT <shellscript_pid>
しません。
私は本当にCtrlc働く必要があります。このセットアップの何が問題になっていますか?
編集:ここstty -a
に、シェルスクリプトの出力を示します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)でもテストし、同じ結果を得ました。
^
を出力し、Ctrl-Cはa C
を追加します。
trap
、シェルスクリプトにコマンドはありますか?
pppd
基礎となるシェルが直接SIGINTを使用して実行することを決定することについては何も述べていません。/ bin / sleep 600を呼び出す小さなシェルスクリプトを作成して、シェルプロセスにSIGINTを送信してみてください。まったく同じことがわかります。
stty -a
ショーintr = ^C
?そうでない場合、intr
設定は何ですか?(注:ttyではなくパイプに書き込むため、stty -a | grep intr
動作しませんstty
。)Ctrl-V Ctrl-Cはエコーし^C
ますか?そうでない場合、それは何をエコーしますか?