Linux プロセスの理解
プロセスとは、現在マシン上で実行されているプログラムのことです。Linux カーネルがこれらを管理し、各プロセスにはプロセス ID (PID) と呼ばれる一意の番号が割り当てられます。PID は通常、新しいプロセスが作成されるにつれて順次割り当てられます。
基本的な ps コマンドの使用法
実行中のプロセスをざっと確認するには、単にpsコマンドを実行します。これにより、現在のターミナルセッションに関連付けられているプロセスの簡単なスナップショットが得られます。
$ ps
PID TTY STAT TIME CMD
41230 pts/4 Ss 00:00:00 bash
51224 pts/4 R+ 00:00:00 ps
この出力には、いくつかの重要な詳細が表示されます。
- PID: 一意のプロセス ID。
- TTY: プロセスの制御端末。
- STAT: プロセスの現在の状態。
- TIME: プロセスが使用した合計 CPU 時間。
- CMD: プロセスを開始したコマンド。
BSD スタイルのオプションを使用した ps の探索
psコマンドは非常に多用途であり、オプションにはさまざまな構文スタイル(BSD、System V、GNU)があります。ダッシュを使用しない BSD スタイルは非常に一般的です。人気のある組み合わせの 1 つがps auxです。
ps aux
これらのオプションの意味は次のとおりです。
- a: すべてのユーザーのすべてのプロセスを表示します。
- u: 詳細な、ユーザー指向の形式を提供します。
- x: どの端末にも接続されていないプロセスを含めます。これらには、起動時に開始され、TTY 列に
?が表示されるシステムデーモンが含まれることがよくあります。
このコマンドは、USER、%CPU、%MEM、VSZ、RSSなどの追加列を含む、より豊富な出力を提供します。ここでは、PID、STAT、COMMAND に焦点を当てます。
Linux での ps -ef コマンドの使用
もう 1 つの非常に人気のある構文は System V スタイルです。システム管理者はps -ef コマンドを頻繁に使用します。これは、システム上で実行されているすべてのものを完全に把握するための強力な方法です。
ps -ef
ps -ef linuxコマンドは、すべてのプロセスの完全なリストを提供します。
- -e: システム上のすべてのプロセスを選択します。
- -f: UID、PPID(親プロセス ID)、C(CPU 使用率)、STIME(開始時刻)などの詳細を含む「フルフォーマット」リストを表示します。
多くのユーザーは、その明確で階層的なビューと詳細な情報のため、ps auxよりもps -efを好みます。Linux システムでトラブルシューティングを行う際、linux ps -efを実行することは、問題を診断するための最初のステップの 1 つになることがよくあります。より単純なバリエーションであるps -e linuxもすべてのプロセスをリストしますが、詳細度は低くなります。
top を使用したリアルタイム監視
psがスナップショットを提供するのに対し、topコマンドはシステム上のプロセスのリアルタイムで動的なビューを提供します。これは、どのプロセスが最も多くの CPU またはメモリを消費しているかを特定するための優れたツールです。デフォルトでは、表示は数秒ごとに更新されます。
top