CHAPTER 8 · 6 LESSONS · 78 問

プロセスとシグナル

いま何が動いているかを見る。止まらないものを止める。うしろで動かす。

打ったコマンドが返ってこない。そんなときに何をするかの章だよ。

動いているプログラム1つ1つをプロセスと呼び、それぞれに番号(PID)が付いている。ps で一覧を出せる。

  • ps … 動いているものの一覧。-o で出す列を選べる
  • pstree … 親子関係を木の形で見る
  • top … いま何が CPU とメモリを食っているかを、動かしながら見る
  • kill … プロセスに合図(シグナル)を送る
  • & jobs fg … うしろで動かして、呼び戻す
  • nice … 優先度を下げて動かす

kill という名前は少し脅かしすぎで、実際には合図を送るだけの道具だよ。既定の合図(TERM)は「片づけて終わってね」というお願いで、聞かないものには -9(KILL)を送る。この違いを知っておくと、データを壊さずに止められるようになる。

あなたはすでに Ctrl-C を使ったことがあるはず。あれも合図(INT)を送る操作なんだ。ボタンの裏で何が起きていたかが、この章で分かるようになるよ。

プロセスの親子関係も見ておこう。全部のプロセスは init(番号1)から枝分かれしていて、あなたのシェルもその枝の1本だよ。

この章のレッスン

動いているものを見る

  1. 39動いているものを見る(`ps`)プロセスと PID。ps で一覧を出し、-o で見たい列だけ選ぶ。 問題へ
  2. 40親子を木で見る(`pstree`)すべてのプロセスは 1 から枝分かれしている。木の形で一目で見る。 問題へ
  3. 41いま重いのは誰か(`top`)ps は写真、top は動画。CPU とメモリを食っているものを見つける。 問題へ

合図を送る、うしろで動かす

  1. 42合図を送って止める(`kill`)kill は殺す道具ではなく合図を送る道具。TERM とお願いと、KILL という最後の手。 問題へ
  2. 43うしろで動かす(`&` と `jobs`)打ったら返ってこないときの逃げ道。うしろに回して、呼び戻す。 問題へ
  3. 44順番をゆずる(`nice`)急がない仕事に遠慮させて、いま使いたいものを軽くする。 問題へ

つぎは「ファイルシステムと書庫」。ルートからの地図を読む。リンクでつなぐ。まとめて固める。空きを調べる。