プロセスの終了

 プロセスの終了は、そのプロセスが実行されるタスクを完了した後や、異常が発生して中断された際に行われます。終了時には、プロセスがリソースを解放し、親プロセスに対して終了状態を通知します。

calプロセスの起動から終了までの解説

  1. シェルのコマンドラインで cal を実行すると、新しいプロセスが生成されます。
  2. 新しいプロセスは cal プログラムの実行ファイルを読み込み、メモリ内にロードします。
  3. cal プロセスはカレンダーを表示し、その処理が完了すると終了ステータスを返します。
  4. プロセスが終了すると、そのプロセスが使用していたリソース(メモリ、ファイルディスクリプタなど)が解放されます。

シグナルとは

 シグナルは、プロセス間通信やプロセス制御に使用される特殊な通知です。システムやユーザーがプロセスに対してイベントを通知するために使用されます。シグナルは通常、異常な状況や特定の要求(プロセスの終了など)を示す目的で送信されます。

シグナルの一覧

 下表は、Linuxシステムで使用されるシグナルです。プロセスがシグナルを受信すると、そのプロセスは対応する処理を行います。

シグナルIDシグナル名動作
1SIGHUP制御端末の切断
2SIGINTキーボードからの割り込み
3SIGQUITキーボードからの中断
9SIGKILL強制終了
15SIGTERM終了要求
19SIGSTOPプロセスの一時停止
18SIGCONT停止されていたプロセスの再開
10,30SIGUSR1ユーザー定義シグナル1
12,31SIGUSR2ユーザー定義シグナル2
11SIGSEGVセグメンテーション違反
13SIGPIPE書き込み先がクローズされたパイプへの書き込み
14SIGALRMアラームクロックからのシグナル
シグナルの一覧

 よく使用する代表的なシグナルに絞ったものが下表です。シグナル名の頭にある「SIG」と付けずに指定することもできます。

シグナルIDシグナル名動作
9KILL強制終了
15TERM終了要求
18CONT停止されていたプロセスの再開
19STOPプロセスの一時停止

これらのシグナルは、Linuxシステムで頻繁に使用され、プロセスの制御や通信に重要な役割を果たします。