【Ruby3.x】kill()関数の使い方
kill関数の使い方について、初心者にもわかりやすく解説します。
基本的な使い方
kill関数は、指定されたプロセスに対してシグナルを送信する関数です。この関数は、主にUNIX系のオペレーティングシステムで利用される kill(2) システムコールに対応しており、実行中のプロセスに特定の指示を送る際に使用されます。例えば、プロセスを優雅に終了させたり、強制的に停止させたり、設定を再読み込みさせたりするなど、さまざまな操作をシグナルによって実行できます。
この関数は、一つ以上の引数を取ります。最初の引数には、送信したいシグナルを指定します。シグナルは、TERM や KILL のようなシグナル名(文字列)または 9 のようなシグナル番号(整数)で指定可能です。続く引数には、シグナルを送信したいプロセスの識別子であるプロセスID(PID)を一つ以上指定します。複数のPIDを指定することで、一度に複数のプロセスにシグナルを送ることができます。
もし最初のシグナル引数を負の整数で指定した場合、その絶対値のシグナルが、そのグループIDを持つプロセスグループ内のすべてのプロセスに送信されます。
kill関数は、実際にシグナルを送信できたプロセスの数を整数で返します。ただし、シグナルを送信するには適切な権限が必要であり、権限がない場合や存在しないプロセスIDを指定した場合などには、Errno::EPERM のような例外が発生することがありますので注意が必要です。特に SIGKILL(9番)や SIGSTOP は、プロセスが無視できない特別なシグナルです。なお、Windows環境ではシグナル処理の概念がUNIX系システムと異なるため、この関数の動作も異なります。通常はプロセスを終了させる目的で利用されます。
構文(syntax)
1kill(signal, pid)
引数(parameters)
signal, *pids
- signal: 終了させるプロセスに送信するシグナルを指定します。
- *pids: 終了させるプロセスのID(PID)を複数指定します。
戻り値(return)
Integer
実行されたシグナルによって終了したプロセスの終了ステータスを整数で返します。