システムプロセスの管理: ps
, top
, htop
1. コマンドps
— プロセスの静的ビュー
Linuxがレストランだったとしたら、プロセスはキッチンのシェフだね。つまり、これはプログラムの実行可能なインスタンスで、メモリー上に存在しているものだよ。アプリを起動するかコマンドラインでファイルを実行すると、プロセスが生成され、それがタスクを完了するまで実行されるってわけ。
プログラミング的に言うと、プロセスはLinuxカーネルによって管理されていて、それぞれにユニークなID、つまりPID (Process ID) が割り当てられている。
ps
(process status)コマンドは、プロセスリストを見るための基本的なコマンドだよ。これを使えば、システム上の現在のプロセスのスナップショットを見ることができる。ps
を使って、プロセスID、所有者、コマンドライン、使用リソースなどの情報を取得できるんだ。
基本的な構文
基本的なコマンドはこんな感じ:
ps
これで現在のターミナルで動いているプロセスが表示される。
でも、それだとつまらないよね!ちょっとスパイスを加えてみよう:
ps aux
ここで:
a
— 他のユーザーのプロセスも表示。u
— 読みやすい形式で表示。x
— ターミナルに紐付いていないプロセスも含む。
出力例:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 22556 1044 ? Ss 12:34 0:01 /sbin/init
student 2345 0.1 0.2 34567 2048 pts/0 S+ 12:35 0:02 bash
student 4567 0.3 0.5 56789 5144 pts/0 R+ 12:36 0:03 ps aux
- USER: プロセスを起動したユーザー。
- PID: プロセスID。
- %CPU: CPU使用率。
- %MEM: メモリー使用率。
- COMMAND: プロセスを呼び出したコマンド。
拡張オプション
プロセスのツリー構造を確認しよう:
ps -ejH
これで、どのプロセスが他のプロセスの"子"なのかが分かるよ。
PIDでフィルタリング:
ps -p 1234
ここで
1234
はPIDね。指定したプロセスだけが表示される。すべてのプロセスを完全なコマンドラインと一緒に出力:
ps -ef
2. コマンド top
— プロセスの動的モニタリング
top
はプロセス用のテレビみたいなもの。プロセスがリアルタイムでどのように変化しているのか観察できるんだ。サーバーを起動したり、自分のコンピュータが「遅くなった」時には、top
が一番の味方だよ。これを使えば、どのプロセスが一番CPUやメモリを食っているのかバッチリわかる。
基本的な使い方
ターミナルで次を入力するだけ:
top
出力例:
- 最上段はシステムの「負荷」を表示する。
- 中央部はタスク数(全体、アクティブ、スリープ、ゾンビ)をレポートしている。
- メモリの情報はさらに下の部分。
- 最下段はプロセスの一覧で、PID、USER、%CPU、COMMANDなどの便利な情報が含まれている。
top
でのナビゲーション
k
を押してプロセスを終了させる。PIDを入力。P
を押してプロセスをCPU順に並べ替える。M
を押してメモリ使用量順に並べ替える。q
を押して終了。
3. ツール htop
— 便利なインターフェース
もしtop
がちょっと「生っぽい」感じなら、htop
へようこそ。これはプロセスをモニタリングするためのビジュアルインターフェースだよ。カラー対応で、マウスも使えて、直感的に分かりやすいんだ。
インストール
もしhtop
がインストールされてなかったら、以下を利用して追加してね:
sudo apt-get install htop # Debianベースのディストリビューション用
sudo yum install htop # RedHatベースのディストリビューション用
起動
htop
を起動するには、単に以下を入力してね:
htop
インターフェースの例:
htop
の利点:
- プロセスリストをスクロールできる。
- CPU、メモリ、swapのための色分け。
- プロセスを終了するための便利なキー(例えば、
F9
)。
4. 実践課題
課題 1: 一番「欲張り」なプロセスを見つける
top
またはhtop
を開きます。- CPUでプロセスをソートして、そのPIDを確認します。
課題 2: プロセスを終了する
kill
を使ってプロセスを「終了」させます:kill <PID>
課題 3: プロセスの分析
ps
を使用してPIDプロセスを分析します:ps -p <PID> -o pid,user,%cpu,%mem,cmd
注意点とおすすめ
- システムにとって重要でないと確信できない限り、プロセスを終了しないでください。例えば、PID 1のプロセスはinitであり、OSの基本です。
htop
は別途インストールする必要があります。コマンドが動作しない場合は、インストール状況を確認してください。- 権限に注意してください。他のユーザーで実行されているプロセスを終了するには、管理者の権限が必要な場合があります。
実際に使ってみると、これらのツールがLinuxでの作業をどれだけ柔軟でわかりやすくするかが分かります。今やあなたはプロセスのボスです!
GO TO FULL VERSION