〜進行中のプロセスの確認と
終了させる方法〜
Ctrl+Alt+t でターミナルを開いたら
まずは ps と打ち込んでみよう。
これで今動いているプロセス
が確認できる。
(Ubuntu上で動いているプロセス
丸ごと表示したい時は、
ps -e もしくは
ps -A を入力して見よう。
ちなみに -A の「エー」は大文字
なので注意。その場合はずっと
沢山の表示が現れる。)
写真の上半分を見ると
2220
9586
9626
と三つの数字が並んでいて、
これらの仕事が行われている
のだと分かる。
これらの内どれかを終了
させたい場合
kill コマンド
を使うことが出来る。
その際、
どの信号を
どのプロセスに
送るのかを指定するのだが
送信可能な信号の内三つを
紹介しよう。
1) kill -2(SIGINT)
これはTerminalで使える
ショートカットの
Ctrl+c
と同じ信号を送るもので、
プロセスは落ち着いて仕事
を終える感じになる。
準備をしてから整然と終了!
みたいなイメージで良いと
思う。
反面プロセスが言うことを
聞いてくれない場合もある
という。
2) kill -15(SIGTERM)
大体上の SIGINT と同じ
ような感じと思って良い
ようだ。
プロセスがきちんと準備
をしてから終了してくれる
ので、基本はこのSIGTERM
か先に説明したSIGINTを
使う様にしよう。
この二つが機能しない時に
初めて次のSIGKILLを試みる
ことになる。
3) kill -9(SIGKILL)
これは問答無用で直ちに
プロセスを終了させる信号
となっている。
整理も付けずに即座に終了!
と言った感じなので、最後の
手段として使う。
ただし、プロセスに問題が
生じていると、このSIGKILL
でも速やかに終了できない
場合があるという。
以下の文章ではSIGKILLを
使った例を紹介しているが、
普通はSIGINTかSIGTERMを
使って欲しい。
***
さて写真の真ん中辺りに
kill -9 9586
と入力してあることを確認
して欲しい。
これは
kill コマンドを使って
9番の信号(SIGKILL)を
9586という番号が割り
振られているプロセス
に送る
という内容である。
kill コマンドでどんな
信号を送れるのかは
kill -l
と入力すれば確認できる。
下の写真の様に
送信できる信号には
実に沢山の種類がある
ことが分かる。
さて kill コマンドで
9586というプロセスが
実際に終了している事を
確認してみよう。
最初のように ps コマンド
を入力する。写真の後半に
注目して欲しい。
前半と違い数字は
2220
9635
しかなく9586が消えている。
これで kill コマンドが上手く
機能した事が確認できた。
最後に大事なことなので
繰り返すが、Terminalから
kill コマンドでプロセスを
終了する時は
kill -2 のSIGINT
kill -15のSIGTERM
のいずれかを通常は使う
様にしよう。
もしくはショートカットの
Ctrl+cを使っても良いだろう。
これはSIGINTを送るもので
あることを思い出して欲しい。
プログラムを強制終了させて
ちょっとしたトラブルが起きた
経験は誰しもあると思うが、
そうした事をイメージすれば
SIGKILLは最後の手段である
という事がイメージしやすい
と思う。
***英語が分かれば
ドキュメントもスイスイ***