読み方 : シグイントシグナル

SIGINTシグナル

SIGINTシグナルとは?

LinuxなどのUNIX系OSで動作するプロセスに対して割り込みを通知する制御信号。利用者がキーボードで「Ctrl+C」を入力した際に発生し、実行中のプログラムを中断させる。シグナル番号は一般に「2」が割り当てられている。
SIGINTシグナルのイメージ画像

UNIX系OSにおける「シグナル」(signal)とは、オペレーティングシステム(OS)がプロセスに対して特定の出来事を非同期に通知する仕組みである。ハードウェア障害、不正なメモリアクセス、外部からの終了要求など様々な場面で使われる。SIGINTシグナルはその中でも利用者操作によって発生するシグナルで、対話的コマンド実行環境での使用が主体となる。

利用者がCtrlキーとCキーを同時を押すと、コマンド操作を司るシェルから中核部のカーネルへ入力が伝わり、OSが最前面で動作しているプロセスにSIGINTシグナルを送信する。受け取ったプロセスは通常そのまま終了するが、プログラム側でシグナル処理を設定している場合は即座に終了せず、開いているファイルを閉じたり一時ファイルを削除したりといった終了前処理を実行することもできる。

長時間にわたる検索処理や通信処理が止まらない場合、あるいは誤って起動したコマンドを停止したい場合に、Ctrl+Cによって即座に終了させることができる。また、killコマンドで「kill -2 プロセスID」と指定することでもSIGINTを送ることができ、最前面のプロセスだけでなく実行中の任意のプロセスを指定できる。

SIGINTシグナルと類似した用途のシグナルに「SIGTERMシグナル」と「SIGKILLシグナル」がある。SIGTERMは終了要求を通知する汎用的なシグナルで、プロセス側が終了前処理を行える点はSIGINTシグナルと共通する。SIGKILLはOSが強制的にプロセスを停止させるもので、プロセス側での無視や捕捉は一切できない。SIGINTシグナルは利用者の対話操作との結びつきが強く、この点でSIGTERMとも性格が異なる。

この仕組みはマルチタスク環境において、制御不能になったプログラムがシステム全体の動作を阻害することを防ぐために整備された。コマンドライン操作が主流であるUNIX系OSの標準的なプログラム中断手段として普及しており、シェルサーバ管理ツールをはじめ多くのシステムソフトウェアがSIGINTシグナルを前提に設計されている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。