
【Linux入門】プロセスの終了
プロセスの終了は、そのプロセスが実行されるタスクを完了した後や、異常が発生して中断された際に行われます。終了時には、プロセスがリソースを解放し、親プロセスに対して終了状態を通知します。
calプロセスの起動から終了までの解説
- シェルのコマンドラインで
calを実行すると、新しいプロセスが生成されます。 - 新しいプロセスは
calプログラムの実行ファイルを読み込み、メモリ内にロードします。 calプロセスはカレンダーを表示し、その処理が完了すると終了ステータスを返します。- プロセスが終了すると、そのプロセスが使用していたリソース(メモリ、ファイルディスクリプタなど)が解放されます。

シグナルとは
シグナルは、プロセス間通信やプロセス制御に使用される特殊な通知です。システムやユーザーがプロセスに対してイベントを通知するために使用されます。シグナルは通常、異常な状況や特定の要求(プロセスの終了など)を示す目的で送信されます。
シグナルの一覧
下表は、Linuxシステムで使用されるシグナルです。プロセスがシグナルを受信すると、そのプロセスは対応する処理を行います。
| シグナルID | シグナル名 | 動作 |
|---|---|---|
| 1 | SIGHUP | 制御端末の切断 |
| 2 | SIGINT | キーボードからの割り込み |
| 3 | SIGQUIT | キーボードからの中断 |
| 9 | SIGKILL | 強制終了 |
| 15 | SIGTERM | 終了要求 |
| 19 | SIGSTOP | プロセスの一時停止 |
| 18 | SIGCONT | 停止されていたプロセスの再開 |
| 10,30 | SIGUSR1 | ユーザー定義シグナル1 |
| 12,31 | SIGUSR2 | ユーザー定義シグナル2 |
| 11 | SIGSEGV | セグメンテーション違反 |
| 13 | SIGPIPE | 書き込み先がクローズされたパイプへの書き込み |
| 14 | SIGALRM | アラームクロックからのシグナル |
よく使用する代表的なシグナルに絞ったものが下表です。シグナル名の頭にある「SIG」と付けずに指定することもできます。
| シグナルID | シグナル名 | 動作 |
|---|---|---|
| 9 | KILL | 強制終了 |
| 15 | TERM | 終了要求 |
| 18 | CONT | 停止されていたプロセスの再開 |
| 19 | STOP | プロセスの一時停止 |
これらのシグナルは、Linuxシステムで頻繁に使用され、プロセスの制御や通信に重要な役割を果たします。
