ブラウザ上で少なくとも 5 つの他のタブを開いて、遭遇した Linux の問題に対する答えを見つけようとしていませんか?
この行動はあなたや人間一般に特有のものではありません。機械もマルチタスクです。あなたと同じように、Linux もマルチタスクであり、複数のプロセスを同時に実行します。あなたが専門的に Linux を使用する開発者であっても、日常業務で Linux を使用する一般ユーザーであっても、システムの完全な制御を維持するためにこれらの並列プロセスを理解できる必要があります。プロセス管理とシステム制御は、Linux システムを実行する上で不可欠な要素です。
システム上で実行されているプロセスを効率的に管理し、リアルタイムで何が起こっているかを確認し、すべてのバックグラウンド プロセスの概要を把握し、システム リソースを制御するには、プロセス管理の技術的な知識が必要です。 ps aux コマンドは、プロセス管理とシステム制御において重要な役割を果たす強力なコマンドです。この投稿では、ps aux コマンドとその使用例について詳しく説明します。 Linux プロセスがどのように動作するかの基礎についても説明します。
Linux におけるプロセス管理を理解する
Linux を使用する場合、システムとのやり取りのほとんどはコマンドの形式で行われます。 Linux では、プロセスとはコマンドの実行です。 Linux プロセス管理には、コマンドが開始したプロセスの操作が含まれます。プロセスを終了したり、プロセスを開始したり、終了したプロセスを再開したりできます。進行中のコマンドを操作することもできます。
Linux プロセスには次の 2 種類があります。
- フォアグラウンドプロセス
- バックグラウンドプロセス
Linux フォアグラウンド プロセス
フォアグラウンド プロセスはアクティブに実行されているプロセスであり、通常はユーザーとの継続的かつリアルタイムの対話が必要です。フォアグラウンド プロセスが動作しているとき、他のプロセスの実行は一時停止されます。したがって、他のコマンドは実行できません。フォアグラウンド プロセスは、キーボードからの入力を標準入力または stdin として受け取ります。さらなる混乱を避けるために、stdin および stdout は stderr とともに Linux データ ストリームです。これは基本的に、ユーザーがプロセスと対話し、プロセスにデータを提供する方法です。プロセスの機能と入力に基づいてプロセスによって生成される標準出力または stdout があります。フォアグラウンド プロセスは、Linux のデフォルトの実行モードです。
Linuxのバックグラウンドプロセス
バックグラウンド プロセスは、ユーザーの操作を必要とせず、端末の全スペースを独占的に占有しないため、他のプロセスの実行を可能にするため、フォアグラウンド プロセスとは正反対です。バックグラウンドプロセスの入出力の種類も異なります。通常、彼らは標準入力を使用しません。ただし、処理の結果は標準出力として表示できます。バックグラウンド プロセスの出力の表示は、他のフォアグラウンド プロセスの出力と同時に行われます。そのため、他の重要なアクションを中断することなく、バックグラウンド プロセスの進行状況や結果を確認できます。
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 コマンドで使用される他のオプションもあります。
補助: このオプションは、システム上で実行されているすべてのプロセスの包括的なリストを表示します。プロセス ID (PID)、親プロセス ID (PPID)、CPU とメモリの使用状況、プロセスのステータスなどの情報が提供されます。 ps aux コマンドによって提供される出力は、基本的な ps コマンドよりもはるかに整っていて読みやすく、さらに多くの有用な情報が含まれています。
効果: このオプションでは、ツリー状構造としてのプロセス階層を含む追加の詳細を含むプロセスの完全な形式のリストが表示されます。
l: このオプションでは、長いリスト形式が提供され、プロセスに関するより詳細な情報が表示されます。
出力を理解する
必要なオプションを指定して ps コマンドを実行すると、システム上で現在実行中のプロセスを表す出力が生成されます。出力は、プロセス ID (PID)、親プロセス ID (PPID)、CPU 使用率、メモリ使用量、プロセス ステータス、端末タイプ、コマンド名などのさまざまなプロセス属性を示す列で構成されます。
これらの各列の意味については次のとおりです。
PID: この列には、プロセスの一意の ID が表示されます。
TTY: この列には、ユーザーがログインしている端末の種類が表示されます。
時間: この列は、このプロセスによって使用される CPU の量を分および秒単位で示します。
CMD: この列は、このプロセスを開始したコマンドの名前を表します。
ps コマンドによって提供される情報を分析すると、Linux マシンの動作についてより深い洞察が得られます。
ps コマンドを使用したプロセス管理のための高度な 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)、コマンド名、および現在の優先順位 (適切な値) とともにリストします。
ps -eo pid,cmd,nice

- nice コマンドを使用して、デフォルトの高優先度でプロセスを開始します。
次のコマンドを使用して、希望の優先順位でプロセスを開始できます。
nice -n [priority] [command]
[priority] を優先度レベルを表す負の値に置き換え、[command] を実行するコマンドに置き換えます。
以下に例を示します。

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