⎈ Control通常、Linuxでは+を押すとプログラムに C転送されますが、プログラムがどのように処理するかによって終了することが多いです。SIGINT
しかし、私にとってはプログラムは終了しません。それは何も動作しません。通常、プログラムを終了するどこでも動作しません。たとえば、tail -f
ログファイルを実行している場合です。
送信されないようですSIGINT
。調整する方法や確認する方法もわかりません。
プログラムを終了するには⎈ Control+Z次にスレッドを手動で終了する必要があります。
私はそれを動作させるために多くを試しました。
- 各種端末プログラム
- 他のユーザー
- サーバーを再起動してください
- 他の殻(
/bin/bash
/bin/sh
)
有用な仕様:
- CENTOS 7(osxマシンからアクセス)
- バッシュシェル
- itermと端末の使用
- gcloud仮想マシン
誰かが要求したログやデバッグ情報を喜んで送信します。しかし、私はとても混乱しています。
デバッグ情報:
stty -a
speed 38400 baud; rows 62; columns 270; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd -cmspar 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
ベストアンサー1
世界に、6週間後についに問題を見つけました。
デバッグに使用しましたtrap
。
実行するとtrap
、キャプチャされた信号のリストが表示されます。
trap -- '' SIGINT
trap -- '' SIGQUIT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
そのリストでSIGINTが見つかったので、何らかの理由でデフォルトで無視されるトラップリストにSIGINTが追加されました。もう少し調べた後、私のbashプロファイルでrvmを使ってロードされたいくつかのRubyライブラリがキャプチャをめちゃくちゃにしていることがわかりました。
とにかく問題を解決するために、以下を追加しました。
trap - INT
私のbash設定ファイルの最後まで、Rubyライブラリの内容の後にすべてが正常です。
うん!