【Linux】シグナルとは?よく使われる一覧も

Linux

どーも!marusukeです!

プロセスに対して「シグナル」と呼ばれる通知や命令についてです!よく使われるLinuxシグナル一覧としてもまとめました!


シグナルとは?


シグナルとは、実行中のプロセスに「終了してほしい」「再読み込みしてほしい」「一時停止してほしい」といった指示を伝える制御手段です

このシグナルを使うことで、アプリケーションの制御やトラブル対応が可能になります

以下に代表的なシグナルの一覧とその意味を紹介します


よく使われるLinuxシグナル一覧

番号シグナル名意味・用途
1SIGHUP設定ファイルの再読み込みに使用。デーモンの制御に多い。
2SIGINT割り込み(Ctrl+C)。プログラムを中断するために使用。
3SIGQUIT終了と同時にコアダンプ(メモリ情報)を出力。Ctrl+\で発生。
9SIGKILL強制終了。プロセスが絶対に終了するが、後処理はされない。
15SIGTERM終了要求。通常のkillコマンドで送られる標準的な終了指示。
18SIGCONT停止中のプロセスを再開する。
19SIGSTOPプロセスを一時停止する。Ctrl+Zでも発生。
20SIGTSTP端末からの一時停止要求(Ctrl+Z)。SIGSTOPと似ているが無視できる。
10(または 12)SIGUSR1 / SIGUSR2ユーザー定義のシグナル。プログラムが独自に処理内容を定義可能。

※シグナル番号はアーキテクチャ(例:x86, ARMなど)によって多少異なる場合があります。


シグナルの確認方法

ターミナルで以下のコマンドを実行すると、システムで使えるシグナルの一覧が表示されます。

kill -l

実行例:

$ kill -l
 1) SIGHUP     2) SIGINT     3) SIGQUIT    4) SIGILL     5) SIGTRAP
 6) SIGABRT    7) SIGBUS     8) SIGFPE     9) SIGKILL   10) SIGUSR1
11) SIGSEGV   12) SIGUSR2   13) SIGPIPE   14) SIGALRM   15) SIGTERM
...

この一覧には全部で数十種類のシグナルが含まれており、主に以下のような目的で使われます:

  • プロセス制御:終了、再起動、一時停止、再開など
  • エラー通知:メモリ違反、ゼロ除算、違法命令など
  • ユーザー通知:任意のアプリケーション処理を呼び出す

シグナルを使ったプロセス制御の例

# プロセスID 1234 に対して安全に終了を要求(SIGTERM)
kill -15 1234

# プロセスID 1234 を強制終了(SIGKILL)
kill -9 1234

# 一時停止(SIGSTOP)と再開(SIGCONT)
kill -STOP 1234
kill -CONT 1234

これらの操作は、プロセスを管理・監視する上で非常に重要です。
例えばWebサーバー(ApacheやNginx)の設定を変更したあと、SIGHUPを送ることで再起動せずに設定を反映できます


まとめ

  • Linuxではシグナルを使ってプロセスを細かく制御できる
  • よく使うのは SIGTERM(終了要求)、SIGKILL(強制終了)、SIGHUP(再読み込み)など
  • kill -lでシグナル一覧を確認できる
  • サーバー管理やトラブル対応ではシグナルの理解が必須

プロセス制御の基礎知識として、シグナルの役割をしっかり把握しておきましょう。
Linuxの力を最大限に活かすための、重要なスキルのひとつです


以上です!

ここまでよんでいただきありがとうございました!

コメント

タイトルとURLをコピーしました