Control+C は Linux でプロセスを停止しません。 ^Cテキストのみを表示し、何もしません。

Control+C は Linux でプロセスを停止しません。 ^Cテキストのみを表示し、何もしません。

⎈ 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ライブラリの内容の後にすべてが正常です。

うん!

おすすめ記事