このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Linuxコマンド演習52

以下のコマンドの演習を行います。

実際にコマンド操作を行いながら、Linuxの操作に慣れていきましょう。

演習01:利用可能なシグナルの一覧を表示する。

・-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
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX	

演習02:killコマンドを使ってプロセスを強制終了する。

・geditをバックグラウンドで実行し、psコマンドで実行中のプロセスを確認します。

$ gedit &
[1] 5205
$ ps
  PID TTY          TIME CMD
 5043 pts/0    00:00:00 bash
 5205 pts/0    00:00:00 gedit
 5222 pts/0    00:00:00 ps

geditがバックグラウンドで起動します。

プロセス番号は、毎回同じ数字になるとは限りません。実行時に確認する必要があります。

・強制終了のシグナル(SIGKILL)を送信してgeditを終了させます。その際、プロセス番号を指定します。

$ kill -9 5205
[1]+  強制終了            gedit

geditが強制終了します。

演習03:killallコマンドを使ってプロセスを終了させる。

・firefoxをバックグラウンドで実行し、psコマンドで実行中のプロセス名を確認します。

$ firefox &
[1] 3885
[user01@localhost ~]$ [Parent 3885, Main Thread] WARNING: No marshaller for signature of signal 'PropertiesChanged': 'glib warning', file /builddir/build/BUILD/firefox-115.7.0/toolkit/xre/nsSigHandlers.cpp:167

** (firefox:3885): WARNING **: 22:40:33.638: No marshaller for signature of signal 'PropertiesChanged'

$ ps
  PID TTY          TIME CMD
 3625 pts/0    00:00:00 bash
 3885 pts/0    00:00:07 firefox
 3972 pts/0    00:00:00 Socket Process
 4172 pts/0    00:00:00 Privileged Cont
 4245 pts/0    00:00:00 WebExtensions
 4373 pts/0    00:00:00 Web Content
 4374 pts/0    00:00:00 Web Content
 4384 pts/0    00:00:00 Web Content
 4666 pts/0    00:00:00 ps
$ 

firefoxがバックグラウンドで起動します。

・プロセス名に firefox を指定して終了要求のシグナル(SIGTERM)を送信します。

$ killall -SIGTERM firefox

firefoxが終了します。

まとめ

 killコマンド、killallコマンドを使用すると特定のプロセスやプロセスグループを終了させることができます。ただし、kill -9 のように強制終了シグナルを使用する場合は、プロセスが正常に終了できない場合にデータ損失や問題が発生する可能性があるので注意が必要です。