プロセス
メモリがほとんど残っていないと分かりました。top で見ると、夜のうちに終わるはずの「集計処理」が、朝になっても終わらず、メモリを大量に使ったまま動き続けています。このように、終わるはずの処理が先へ進まなくなった状態を「固まる」ということがあります
プロセスは、動いている最中のプログラムのことです。
1つずつ番号(PID)がついていて、番号を指定して止めることができます。
- プロセスは、動いている最中のプログラムのこと
- プロセスには1つずつ番号(PID)がつく
- kill コマンドでプロセスに「止まって」という合図(シグナル)を送る
- kill -9(KILL)は、後片付けなしで強制的に止める最後の手段
身近な例えで理解する
レシピは、書いてあるだけでは料理になりません。実際に火にかけて作っている最中の鍋が、プロセスにあたります。同じカレーのレシピを見ながら、2つの鍋で同時にカレーを作ることもできます。片方の鍋が焦げはじめたら、その鍋の火だけを止めれば、もう片方の鍋やほかの料理はそのまま続けられます。
- レシピ保存されているプログラム
- 火にかけて作っている最中の鍋プロセス
- 同じレシピから2つの鍋同じプログラムから2つのプロセス
- 「右奥のコンロの鍋」のように、どの鍋かをはっきり指すPIDで、どのプロセスかを指定する
- 焦げた鍋だけ火を止めるそのプロセスだけ止める(kill)
キッチンでは、いくつもの鍋が同時に火にかかっています。サーバーでも、たくさんのプロセスが同時に動いています。困っている1つだけを止めれば、キッチン(サーバー)全体を止めずにすみます。ただし、指す鍋を間違えると、焦げていない鍋の火を止めてしまいます。PIDも、止める前に必ず確かめます。
ちょっと確認
プロセスの説明として正しいものは?
例えを外して、実際のしくみ
一覧を見る
ps aux で動いているプロセスの一覧を、PID・CPUやメモリの使用率と一緒に見られます。top では、多く使っている順に並べて見られます
ps u を使っています。sleep 300 は300秒待つだけのコマンドで、最後に & をつけると裏で動かせます):user2@vm:~$ sleep 300 &
[1] 1841
user2@vm:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user2 1826 0.0 0.0 5028 4252 pts/0 S 17:50 0:00 -bash
user2 1841 0.0 0.0 3136 2004 pts/0 S 17:50 0:00 sleep 300
user2 1842 0.0 0.0 8348 4472 pts/0 R+ 17:50 0:00 ps u
user2@vm:~$ kill $!
user2@vm:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user2 1826 0.0 0.0 5028 4252 pts/0 S 17:50 0:00 -bash
user2 1843 0.0 0.0 8348 4480 pts/0 R+ 17:50 0:00 ps u
[1]+ Terminated sleep 300sleep のPIDは1841です。$! は「直前に裏で動かしたプロセスのPID」を表します。kill で TERM を送ると、次の一覧から sleep が消えています。
止める
kill -9 は最後の手段
TERM で止まらないときは kill -9 PID(KILL)で強制的に止めます。これはプロセス側で断れませんが、後片付けができないので、書きかけのデータが中途半端に残ることがあります。PIDを打ち間違えると別のプロセスが止まるので、実行前に必ず確かめます
このページのまとめ
- プロセス
- 動いている最中のプログラム
- PID
- プロセスにつく番号
- kill(TERM)
- 「後片付けして終わって」の合図を送る。ふつうはこちら
- kill -9(KILL)
- 後片付けなしで強制的に止める。最後の手段
先輩のひとことの意味
先輩「その固まってるプロセス止めて。まずはふつうの kill でね」
「メモリを使いっぱなしで終わらない集計処理のプロセスを、PIDを確かめて止めて。いきなり強制終了せず、まずは後片付けできる TERM の合図で」という意味です。新人がPIDを先輩と一緒に確かめて kill すると、集計処理は止まり、メモリの空きが戻って、システムも軽くなりました。ただ、先輩はまだ気がかりがあるようです。
練習問題で確かめる
なぜ?
固まったプロセスを止める手順を、正しい順に並べてください。
下のカードを、正しい順にタップしてください。
参考資料
ご意見・「これで例えて!」を募集しています
ご意見・ご感想・質問・間違いのご指摘など、何でもお気軽にお寄せください。「この言葉も例えで説明してほしい」「こんな例えなら分かりやすい」という声をもとに、新しいページや例えを作ります。
- 説明してほしいITの言葉
- 例えてほしい場面(部活・アルバイト・家事など)
- 分かりにくかったところ・間違いのご指摘
意見箱は準備中です。