回答:
初挑戦
SIGTERM 15 Term Termination signal
これが機能しない場合
SIGKILL 9 Term Kill signal
から man 7 signal
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
readers
SIGALRM 14 Term Timer signal from alarm(2)
SIGTERM 15 Term Termination signal
SIGUSR1 30,10,16 Term User-defined signal 1
SIGUSR2 31,12,17 Term User-defined signal 2
SIGCHLD 20,17,18 Ign Child stopped or terminated
SIGCONT 19,18,25 Cont Continue if stopped
SIGSTOP 17,19,23 Stop Stop process
SIGTSTP 18,20,24 Stop Stop typed at terminal
SIGTTIN 21,21,26 Stop Terminal input for background process
SIGTTOU 22,22,27 Stop Terminal output for background process
The signals SIGKILL and SIGSTOP cannot be caught, blocked, or
ignored.
Next the signals not in the POSIX.1-1990 standard but described in
SUSv2 and POSIX.1-2001.
Signal Value Action Comment
────────────────────────────────────────────────────────────────────
SIGBUS 10,7,10 Core Bus error (bad memory access)
SIGPOLL Term Pollable event (Sys V).
Synonym for SIGIO
SIGPROF 27,27,29 Term Profiling timer expired
SIGSYS 12,31,12 Core Bad argument to routine (SVr4)
SIGTRAP 5 Core Trace/breakpoint trap
SIGURG 16,23,21 Ign Urgent condition on socket (4.2BSD)
SIGVTALRM 26,26,28 Term Virtual alarm clock (4.2BSD)
SIGXCPU 24,24,30 Core CPU time limit exceeded (4.2BSD)
SIGXFSZ 25,25,31 Core File size limit exceeded (4.2BSD)
SIGINT
。これは、Ctrl + Cを押すのに似ていますが、プログラムを正常に終了させることができます。私は、Gurobiを使用して最適化の実行を終了するときにそれを使用します。プログラムをすぐに停止しますが、見つかった最良のソリューションがファイルに書き込まれます。
これらは一般的なプロセスシグナルであり、に関連するだけでなくhtop
、次のコマンドを使用してすべてのシグナルをリストできます。
kill -l
たとえば、ソース:
-1または-HUP-この引数は、killが "Hang Up"シグナルをプロセスに送信するようにします。これはおそらくモデム/ダイヤルインの時代に由来しています。プロセスは、このプロセスを実際にリッスンして何かを行うようにプログラムする必要があります。ほとんどのデーモンは、そのようなシグナルを受信したときに構成を再度読み取るようにプログラムされています。とにかく; これは非常に安全なkill信号である可能性が非常に高く、何も妨げるべきではありません。
-2または-SIGINT-これは、いくつかのプログラムを起動して、実行中にCTRL + Cを押すのと同じです。ほとんどのプログラムが停止し、データを失う可能性があります。
-9または-KILL-カーネルはプロセスに通知せずにプロセスを手放します。このようなクリーンでないキルは、データの損失につながる可能性があります。これは、「最も難しい」、「最も荒い」、そして最も危険なkillシグナルであり、止められないように見えるものを止めるためにのみ使用されるべきです。
-15または-TERM-プロセスに実行中の処理をすべて停止して終了するように指示します。シグナルを指定しない場合、このシグナルが使用されます。実行してもかなり安全ですが、「-1」または「-HUP」で開始することをお勧めします。
signal.h
ファイルからのリスト:
+--------------------+------------------+
* | POSIX signal | default action |
* +--------------------+------------------+
* | SIGHUP | terminate |
* | SIGINT | terminate |
* | SIGQUIT | coredump |
* | SIGILL | coredump |
* | SIGTRAP | coredump |
* | SIGABRT/SIGIOT | coredump |
* | SIGBUS | coredump |
* | SIGFPE | coredump |
* | SIGKILL | terminate(+) |
* | SIGUSR1 | terminate |
* | SIGSEGV | coredump |
* | SIGUSR2 | terminate |
* | SIGPIPE | terminate |
* | SIGALRM | terminate |
* | SIGTERM | terminate |
* | SIGCHLD | ignore |
* | SIGCONT | ignore(*) |
* | SIGSTOP | stop(*)(+) |
* | SIGTSTP | stop(*) |
* | SIGTTIN | stop(*) |
* | SIGTTOU | stop(*) |
* | SIGURG | ignore |
* | SIGXCPU | coredump |
* | SIGXFSZ | coredump |
* | SIGVTALRM | terminate |
* | SIGPROF | terminate |
* | SIGPOLL/SIGIO | terminate |
* | SIGSYS/SIGUNUSED | coredump |
* | SIGSTKFLT | terminate |
* | SIGWINCH | ignore |
* | SIGPWR | terminate |
* | SIGRTMIN-SIGRTMAX | terminate |
* +--------------------+------------------+
* | non-POSIX signal | default action |
* +--------------------+------------------+
* | SIGEMT | coredump |
* +--------------------+------------------+
さらに読む:
man signal
、man 2 signal
、man 7 signal
、man kill