この記事では、Linuxでのプロセス管理について説明します。 プロセス Linuxでは、実行中のプログラムに他なりません。これは、プログラムの実行中のインスタンスです。実行するコマンドはすべてプロセスを開始します。
Linuxのプロセスの種類
Linuxでは、プロセスには次の2つのタイプがあります。
- フォアグラウンドプロセス
入力はユーザーに依存します
インタラクティブプロセスとも呼ばれます
- バックグラウンドプロセス
ユーザーとは独立して実行
非対話型または自動プロセスと呼ばれます
Linuxのプロセス状態
Linuxのプロセスは、作成されてから終了するまでにさまざまな状態を経ることがあります。これらの状態は次のとおりです。
- 実行中
- 睡眠
- 中断可能な睡眠
- 途切れない睡眠
- 停止
- ゾンビ
- 実行中のプロセス 状態とは、実行中であるか、実行の準備ができていることを意味します。
- プロセスはスリープ中です リソースが利用可能になるのを待っているときの状態。
- 中断可能な睡眠のプロセス 信号を処理するためにウェイクアップしますが、中断できないスリープのプロセス しません。
- プロセスが停止に入ります 停止信号を受信したときの状態。
- ゾンビ 状態は、プロセスが停止しているが、プロセスのエントリがまだテーブルに存在している場合です。
Linuxでのプロセス管理のためのさまざまなコマンド
Linuxでは、実行中のプロセスを追跡するために2つのコマンドを使用できます。これらの2つのコマンドはトップです およびPs 。
1。 Linuxプロセスを管理するためのトップコマンド
マシンで実行中のプロセスを追跡するには、topコマンドを使用できます。
$ top

topコマンドは、リアルタイムで実行されているプロセスのリストと、それらのメモリおよびCPU使用率を表示します。出力をもう少しよく理解しましょう:
- PID :各プロセスに与えられた一意のプロセスID。
- ユーザー :プロセス所有者のユーザー名。
- PR :スケジューリング中にプロセスに優先順位が与えられます。
- NI: プロセスの「素晴らしい」価値。
- VIRT :プロセスによって使用される仮想メモリの量。
- RES :プロセスによって使用される物理メモリの量。
- SHR :他のプロセスと共有されているメモリの量。
- S :プロセスの状態
- 「D」=途切れない睡眠
- 「R」=実行中
- 「S」=寝ている
- 「T」=トレースまたは停止
- 「Z」=ゾンビ
- %CPU :プロセスによって使用されたCPUのパーセンテージ。
- %MEM ;プロセスによって使用されたRAMの割合。
- 時間+: プロセスによって消費された合計CPU時間。
- コマンド :プロセスをアクティブ化するために使用されるコマンド。
上/下を使用できます リスト内を上下に移動するための矢印キー。終了するには、 qを押します 。プロセスを強制終了するには、上下の矢印キーでプロセスを強調表示し、「k」を押します。
または、killコマンドを使用することもできます。これについては後で説明します。
2。 psコマンド
psコマンドは「ProcessStatus」の略です。現在実行中のプロセスが表示されます。ただし、topコマンドとは異なり、生成される出力はリアルタイムではありません。
$ ps

用語は次のとおりです:
PID | プロセスID |
TTY | 端末タイプ |
時間 | プロセスが実行されている合計時間 |
CMD | プロセスを起動するコマンドの名前 |
psコマンドを使用して詳細情報を取得するには、次を使用します。
$ ps -u

ここ:
- %CPU プロセスが使用している計算能力の量を表します。
- %MEM プロセスが使用しているメモリの量を表します。
- STAT プロセス状態を表します。
psコマンドは現在実行中のプロセスのみを表示しますが、これを使用してすべてのプロセスを一覧表示することもできます。
$ ps -A

このコマンドは、現在実行されていないプロセスも一覧表示します。
3。プロセスを停止する
Linuxでプロセスを停止するには、「kill」を使用します 指図。 killコマンドは、プロセスにシグナルを送信します。
送信できる信号にはさまざまな種類があります。ただし、最も一般的なのは「kill-9」で、これは「 SIGKILL」です。 ‘。
次を使用してすべての信号を一覧表示できます:
$ kill -L

デフォルトのシグナルは15で、これは SIGTERM 。つまり、番号なしでkillコマンドを使用すると、SIGTERMシグナルが送信されます。
プロセスを強制終了するための構文は次のとおりです。
$ kill [pid]
または、:
を使用することもできます$ kill -9 [pid]
このコマンドは、「SIGKILL」シグナルをプロセスに送信します。これは、プロセスが通常の強制終了要求を無視する場合に使用する必要があります。
4。プロセスの優先度を変更する
Linuxでは、プロセス間で優先順位を付けることができます。プロセスの優先度の値は「Niceness」値と呼ばれます。ニースの値の範囲は– 20 〜 19 。 0 デフォルト値です。
topコマンドの出力の4番目の列は、niceness値の列です。

プロセスを開始し、デフォルト以外の適切な値を指定するには、次を使用します。
$ nice -n [value] [process name]
すでに実行されているプロセスの適切な値を変更するには、次を使用します。
renice [value] -p 'PID'
結論
このチュートリアルでは、Linuxでのプロセス管理について説明しました。主にプロセス管理の実際的な側面がカバーされました。理論的には、プロセス管理は広大なトピックであり、その全体をカバーすることはこのチュートリアルの範囲外です。