ブラウザで 5 つ以上のタブを開いて、Linux で発生した問題の答えを探しているということはありませんか?
このような動作はあなたや一般的な人間に限った話ではありません。マシンもマルチタスク処理を行います。あなたと同じように、Linux も複数のプロセスを同時に実行するマルチタスカーです。Linux をプロフェッショナルとして使用する開発者であれ、日常業務で Linux を使用する一般ユーザーであれ、システムを完全に制御するために、これらの並行プロセスを理解できるようにしておく必要があります。プロセス管理とシステム制御は、Linux システムの実行に不可欠な側面です。
システムで実行されているプロセスを効率的に管理し、リアルタイムで何が起きているかを確認し、すべてのバックグラウンドプロセスの概要を把握し、システムリソースを制御するには、プロセス管理に関する技術知識が必要です。ps aux コマンドは、プロセス管理とシステム制御において重要な役割を果たす強力なコマンドです。このポストでは、ps aux コマンドとそのユースケースについてさらに詳しく学びます。また、Linux プロセスがどのように機能するかの基礎についても説明します。
Linux でのプロセス管理の理解
Linux を操作する場合、システムとのほとんどのインタラクションはコマンド形式です。Linux では、プロセスはコマンドの実行です。Linux プロセス管理では、コマンドが開始したプロセスを操作します。プロセスを終了したり、プロセスを開始したり、または終了したプロセスを再開することができます。進行中のコマンドを操作することもできます。
Linux プロセスには 2 つのタイプがあります:
- フォアグラウンドプロセス
- バックグラウンドプロセス
Linux フォアグラウンドプロセス
フォアグラウンドプロセスは、アクティブに実行されており、通常、ユーザーとの継続的かつリアルタイムなインタラクションが必要なプロセスです。フォアグラウンドプロセスが動作しているとき、他のプロセスの実行は一時停止されます。したがって、他のコマンドを実行することはできません。フォアグラウンドプロセスは、キーボードから標準入力、つまり stdin として入力を受け取ります。混乱を避けるため、stdin と stdout は Linux データストリームであり、stderr とともに存在します。基本的には、ユーザーがプロセスと対話し、そのデータを提供する方法です。プロセスは、その機能と入力に基づいて、標準出力または stdout を生成します。フォアグラウンドプロセスは、Linux のデフォルト実行モードです。
Linux バックグラウンドプロセス
バックグラウンドプロセスはフォアグラウンドプロセスとは逆で、ユーザーインタラクションが不要であり、ターミナルの全領域を占有しないため、他のプロセスの実行が可能です。バックグラウンドプロセスの入出力タイプも異なります。通常、stdin を受け取りません。ただし、プロセスの結果は stdout として表示される場合があります。バックグラウンドプロセスの出力表示は、他のフォアグラウンドプロセスの出力と同時に発生します。したがって、他の重要な操作に支障をきたすことなく、バックグラウンドプロセスの進捗状況や結果を確認できます。
Linux では、コマンドラインに依存して広範なタスク実行ができるため、フォアグラウンドプロセスは厄介な場合があります。一方、バックグラウンドでプロセスを実行すると、ターミナルが他のタスク処理から解放されます。したがって、フォアグラウンドタスクをバックグラウンドに移行することは合理的です。 プロセスをバックグラウンドに送信する には、まずそれがフォアグラウンドで実行されるのを停止する必要があります。これは CTRL+Z を押すだけで簡単に実行できます。その後、bg コマンドを入力すると、終了したプロセスがバックグラウンドで再実行されます。fg コマンドはプロセスを逆にして、フォアグラウンドに戻します。
プロセスステータス。構文、コマンド、出力の解釈
Linux で効果的なプロセス管理を行うには、ps aux コマンドで監視できるプロセスのステータスを理解する必要があります。ps aux コマンドについてさらに詳しく説明する前に、異なるプロセスステータスについて学びましょう。プロセスとプロセスステータスにはいくつかのタイプがありますが、以下は最も一般的なもののテーブルです:
| 処理ステータス | 説明 | |
| 実行中(R) | プロセスは現在実行中で、CPU リソースを使用しています。 | |
| スリープモード | 割り込み可能 (S) | プロセスは、再度実行を開始するための特定の入力またはイベントを待機しています。現在、CPU リソースを使用していません。リソースが利用可能になるか、シグナルが与えられると、プロセスが再開します。 |
| 中断不可 (D) | 中断可能なスリープ状態のプロセスと同じように、中断不可能なスリープ状態のプロセスは CPU リソースを使用していません。唯一の違いは、シグナルに反応しないということです。リソースが利用可能になるときだけ、再度動作を開始します。 | |
| 停止中(T) | ユーザー入力または特定のイベントがプロセスを一時停止しました。停止状態のプロセスは、CPU リソースをまったく使用しません。 | |
| 終了(X) | プロセスは終了され、もはや存在しません。 | |
これらのプロセスステータスを適切に理解することは、Linux システムを効果的に管理およびトラブルシューティングするための重要な側面です。次に、Linux でプロセスステータスを取得するための構文とコマンド、および出力を解釈する方法について説明します。
プロセスステータス取得のための構文とコマンド
Linux でプロセスステータスを取得するには、ps コマンドの基本構文を使用します:
ps [process name]
ps コマンドで使用される他のオプションもあります:
aux: このオプションはシステム上で実行されているすべてのプロセスの包括的なリストを表示します。プロセス ID (PID)、親プロセス ID (PPID)、CPU、メモリ使用量、プロセスステータスなどの情報を提供します。ps aux コマンドの出力は基本的な ps コマンドよりもはるかに整理されており、可読性が高く、より多くの有用な情報を含んでいます。
エフ: このオプションはプロセスの詳細フォーマットリストを表示し、プロセス階層をツリー状の構造として含めた追加の詳細情報を表示します。
l: このオプションは長いリスト形式を提供し、プロセスに関するより詳細な情報を表示します。
出力について理解する
目的のオプションを指定して ps コマンドを実行すると、システム上で現在実行されているプロセスを表す出力が生成されます。出力はプロセス ID (PID)、親プロセス ID (PPID)、CPU 使用量、メモリ使用量、プロセスステータス、ターミナルタイプ、コマンド名を含むさまざまなプロセス属性を表示する列で構成されています。
各列の意味の説明は以下の通りです:
PID: この列はプロセスの一意な ID を示します。
TTY: この列はユーザーがログインしたターミナルのタイプを示します。
時間: この列はこのプロセスによって使用されている CPU の量を分と秒で表示します。
CMD: この列はこのプロセスを開始したコマンドの名前を表示します。
ps コマンドが提供する情報を分析することで、Linux マシンの動作についてより深い理解が得られます。
ps コマンドを使用したプロセス管理の高度なテクニック
ps コマンドの高度な機能と、それらを効果的に活用する方法をいくつか見てみましょう:
1. プロセスソーティング
ps aux コマンドを使用して、異なる列に基づいて最終出力をソートできます。たとえば、プロセスをプロセス ID または CPU 使用量でソートして、目的の順序で表示することができます。
ps aux を使用してプロセスをプロセス ID でソートする例は以下の通りです:
ps aux –-sort pid
head コマンドは出力の最初の 5 行だけを取得するために使用されます。

2. プロセスツリーの視覚化
プロセスの親子関係を明確に確認したい場合は、ps コマンドを forest オプション付きで使用できます。
ps -aux --forest

プロセス間の関係をツリー状のパターンで確認するには、pstree コマンドを使用することもできます。このコマンドはより理解しやすい出力を作成し、プロセス間の階層を完璧に示します。このコマンドを使用するには、次のコマンドを入力してください:
pstree [pid or username]
このコマンドに PID を指定すると、そのプロセスをツリーのルートと見なすようにコマンドに指示できます。
3. フィルタリング プロセス
特定のプロセスグループを操作したいとします。例えば、あるユーザーのプロセスをすべてリストアップしたい場合です。psコマンドを使用してプロセスを特定の特性でフィルタリングできます。この例では、ユーザー名に基づいてプロセスをフィルタリングしました。
ps -u [username]

ps aux grepコマンドは、コマンドに指定したパターンやキーワードに基づいてプロセスをフィルタリングできます。以下のコード例を参照してください。

このコマンドはまずすべてのプロセスをリストアップし、その出力をgrepコマンドに渡して、その長いリストをプロセスIDでフィルタリングします。上の画像では、情報の中に数字15を含むすべてのプロセスのリストが表示されています。
psコマンドとその機能に関する詳細は、このコマンドのマニュアルページで確認できます。以下のコードはマニュアルページを表示します。
man ps
Linuxのタスク優先度管理
Linuxでのプロセス管理の仕組みをより詳しく説明するために、プロセス優先度とその変更方法についても取り上げる必要があります。複数のプロセスを実行していて、CPUがタスクで過負荷状態になっている場合を想像してください。この状況でリソースを適切に管理したい場合は、実行中のタスクの優先度を変更する必要があります。Linux内の各プロセスは優先度値を持っています。この値はカーネルがタスクを優先順位付けするのに役立ちます。優先度番号は-20から19の範囲で、19が最も重要度の低いタスク、-20が最も緊急度の高いタスクです。最も高い優先度のプロセスは、他のプロセスと比べてCPU時間がより多く割り当てられます。優先度値は通常「nice」値と呼ばれ、niceの値が低いほど優先度が高いことを示します。
niceコマンドとreniceコマンドを使用して、システムリソースを効率的に配分できます。
プロセスの優先度を変更する前に、まずpsコマンドの使用例を見てみましょう。
- psコマンドを使用してすべてのプロセスの現在の優先度を表示:
このコマンドはすべてのプロセスをプロセスID(PID)、コマンド名、および現在の優先度(nice値)と共にリストアップします。
ps -eo pid,cmd,nice

- niceコマンドを使用してデフォルトの高優先度でプロセスを開始:
このコマンドを使用して、希望する優先度でプロセスを開始できます。
nice -n [priority] [command]
[priority]を優先度レベルを表す負の値に置き換え、[command]を実行したいコマンドに置き換えてください。
I'm ready to translate to Japanese. Please provide the English text you'd like me to translate.

- 既に実行中のコマンドの優先度を変更:
renice -n [priority] -p [PID]
操作したいプロセスのプロセスIDを[PID]に置き換えてください。
あらゆる種類のタスクを実行できるパワフルなLinuxマシンが必要な場合、 Linux VPS が最適なソリューションです。 Cloudzy は、希望するディストロがプリインストールされたさまざまなLinux VPSプランを提供しています。24時間対応サポート、30日間の返金保証、99.95%の稼働率保証など、多くの優れた特性を備えています。Cloudzyは価格を低く抑えることができました。Linux VPSの価格は月額わずか$4.95から始まります。
ウェブサイトやリモートデスクトップをホストするために、エコノミーまたはプレミアムなLinux VPSを最安値で手に入れましょう。VPSはLinux KVMで動作して効率を向上させ、NVMe SSDストレージを備えた強力なハードウェアで速度を高めます。
詳細を見る結論
結論として、プロセス管理とシステム制御をマスターすることは、システム管理者、さらに学びたいLinux愛好家、およびLinuxの一般的なユーザーにとって必須です。psコマンドの機能と動作についての知識は、プロセス管理の学習を進める上で役に立ちます。そのため、この記事ではpsコマンドの重要な使用例を紹介し、読者にLinuxプロセスの概要を提供しました。
よくあるご質問
Linuxのps auxコマンドとは何ですか?
ps aux Linuxコマンドは、Linuxで実行中のプロセスに関する情報を取得するために一般的に使用されるコマンドです。プロセスID(PID)、CPUとメモリ使用量、実行状態、その他の重要な詳細を含む、ユーザーフレンドリー形式の包括的なプロセスリストを提供できます。
Linuxにはどのような2つのプロセスタイプがありますか?
フォアグラウンドプロセスとバックグラウンドプロセスです。フォアグラウンドプロセスはターミナルを占有して実行し、他の処理を許可しません。バックグラウンドプロセスはバックグラウンドで実行され、ターミナル全体を使用しません。
Linuxシステムで実行中のプロセスのリストを確認するにはどうすればよいですか?
Linuxシステムで実行中のプロセスのリストは、ps、top、htopなどのコマンドで表示できます。例えば、Linux ps auxコマンドは実行中のすべてのプロセスについて詳細情報を提供します。