私は答えを探していますが、これまで私の質問に対する答えは見つかりませんでした。現在Ubuntuサーバーにログインしており、プロセスの実行中は割り込みは実行されません。これは私のstty -aです。
user@Ubuntu1:~$ stty -a
speed 38400 baud; rows 93; columns 200; 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;
私の.bashrcには割り込みを変更するエントリはありません。
これは、ルートを含むすべてのユーザーに同じです。また、別の端末を使用して別の場所からログインしようとしましたが、毎回同じ結果が出ました。 sshとssh -Xを使用してログインしました。
編集:ローカルでは、すべての割り込みが正常に機能します。
更新:まだ答えを探しています。私の友人も同じ問題があります。問題は深刻なようです。ログインすると(PC、Mac、Linuxで)、キーボードはこれらのキーを認識しません(マッピングが正しいにもかかわらず)。
ベストアンサー1
ctrl+cプログラムを終了しないでください。
そんなことではありません。
POSIX標準は、実行中のプログラムを制御するために使用される信号のセットを定義します。
First the signals described in the original POSIX.1-1990 standard.
Signal Value Action Comment
──────────────────────────────────────────────────────────────────────
SIGHUP 1 Term Hangup detected on controlling terminal
or death of controlling process
SIGINT 2 Term Interrupt from keyboard
SIGQUIT 3 Core Quit from keyboard
SIGILL 4 Core Illegal Instruction
SIGABRT 6 Core Abort signal from abort(3)
SIGFPE 8 Core Floating point exception
SIGKILL 9 Term Kill signal
SIGSEGV 11 Core Invalid memory reference
SIGPIPE 13 Term Broken pipe: write to pipe with no
SIGTERM 15 Term Termination signal
-http://man7.org/linux/man-pages/man7/signal.7.html
ctrl+端末で実行されているプログラムにc「キーボード割り込み」信号を送信します。2
その信号の処理は完全にプログラムに依存し、必要なものは何でもできます。多くのスクリプト言語ソルバーは、デフォルトで呼び出されたスクリプトを終了して正常に終了することでこれを処理できます。
特に、自動コンテキストでプログラムを終了するには、kill
id(pid)でプロセスにシグナルを送信するために使用できるsingal 15を使用することをお勧めします。
kill -15 <pid>
私が知っている限り、プログラム自体はまだこの信号を受け取り、できるだけきれいに終了する必要があります。
プログラムがシグナル 15 を無視し、プログラムがまだ存在する場合 (および許可エラーによってシグナル転送が中断されない場合)
kill -9 <pid>
私が知る限り、シグナル9はカーネル(タスクマネージャとハードウェアインターフェイス)によって解釈され、カーネルは突然プログラムの処理を中断し、すべてのリソースを割り当て解除/解除します。