はじめに
Linuxサーバーは、あなたがよく知っているかもしれない他のコンピュータと同様に、アプリケーションを実行します。 のコンピュータされたものと考えられる”過程”.
Linuxはプロセスのライフサイクルにおいて低レベルの舞台裏の管理を処理しますが、より高レベルから管理するためにはオペレーティングシステ
このガイドでは、プロセス管理のいくつかの簡単な側面について説明します。 Linuxの提供を豊富に収集ツールです。,
Ubuntu12.04VPSでこれらのアイデアを探求しますが、現代のLinuxディストリビューションも同様の方法で動作します。
Linuxで実行中のプロセスを表示する方法
top
サーバー上で実行されているプロセスを見つける最も簡単な方法は、top
コマンドを実行することです。
top
情報の一番上のチャンクは、システムの負荷やタスクの総数などのシステム統計を与えます。
実行中のプロセスが1つあり、55のプロセスがスリープしていることが簡単にわかります(別名アイドル/CPUリソースを使用していません)。,
下部には、実行中のプロセスとその使用状況の統計があります。
htop
top
の改良版は、htop
と呼ばれ、リポジトリで利用可能です。 このコマンドでインストールします。
sudo apt-get install htop
htop
コマンドを実行すると、よりユーザーフレンドリーなディスプレイがあることがわかります。
htop
topとhtopの使い方について詳しくはこちらからご覧いただけます。,
psを使用してプロセスを一覧表示する方法
top
とhtop
グラフィカルなタスクマネージャと同様に、実行中のプロセスを表示するための素晴らしいインターフェイスを提供します。
しかし、これらのツールは、常に柔軟で十分にカバーすべてのシナリオ. ps
と呼ばれる強力なコマンドは、多くの場合、これらの問題に対する答えです。,
引数なしで呼び出された場合、出力は少しlack-lossになります。
ps
PID TTY TIME CMD 1017 pts/0 00:00:00 bash 1262 pts/0 00:00:00 ps
この出力は、現在のユーザーと端末セッションに関連付けられたすべてのプロセスを示します。 現在、この端末でbash
およびps
のみを実行しているため、これは理にかなっています。,
このシステム上のプロセスのより完全なイメージを取得するには、次のように実行できます。
ps aux
これらのオプションは、ps
すべてのユーザーが所有するプロセスをユーザーフレンドリーな形式で表示します。p>
ps axjf
ご覧のように、プロセスkthreadd
は、ksoftirqd/0
プロセスおよびその他の親であることが示されています。
プロセスおよびその他のオプションを使用して、コマンドを実行します。
プロセスを参照してください。
プロセスを参照してください。
プロセスを参照してください。
プロセスを参照してください。
プロセスを参照してください。
,
プロセスIdに関する注意
LinuxおよびUnixライクなシステムでは、各プロセスにプロセスIDまたはPIDが割り当てられます。 こうして営業システム識別とを常に追い続けます。
プロセスのPIDを取得する簡単な方法は、pgrep
コマンドです。
pgrep bash
1017
これは単にプロセスIDを照会して返します。
起動時に最初に生成されるinitと呼ばれるプロセスには、PIDが”1″になります。,
pgrep init
1
このプロセスは、システム上の他のすべてのプロセスを生成する責任があります。 後のプロセスには大きなPID番号が与えられます。
プロセスの親は、そのプロセスを生成する責任があったプロセスです。 親プロセスにはPPIDがあり、top
、htop
、ps
など、多くのプロセス管理アプリケーションの列ヘッダーに表示されます。,
プロセスに関するユーザーとオペレーティングシステム間の通信には、操作中のある時点でプロセス名とPid間の変換が含まれます。 これが、ユーティリティがPIDを伝える理由です。
親子関係
子プロセスの作成は、新しいアドレス空間を作成し、子プロセスが利用できるようにcopy-on-writeを介して親が所有するリソースをコピーするfork()と、実行可能ファイルをアドレス空間にロードして実行するexec()の二つのステップで行われる。,
子プロセスが親プロセスの前で死ぬ場合、親プロセスがそれに関する情報を収集するか、その情報を必要としないことをカーネルに示すまで、子プロセスはゾンビになります。
その後、子プロセスからのリソースが解放されます。 ただし、親プロセスが子プロセスの前に死亡した場合、子プロセスはinitによって採用されますが、別のプロセスに再割り当てすることもできます。
Linuxでプロセスシグナルを送信する方法
Linuxのすべてのプロセスがシグナルに応答します。 シグナルは、プログラムの動作を終了または変更するように指示するosレベルの方法です。,
PIDでプロセスシグナルを送信する方法
シグナルをプログラムに渡す最も一般的な方法は、kill
コマンドです。
ご想像のとおり、このユーティリティのデフォルトの機能は、プロセスを強制終了しようとすることです。
<pre>
kill<span class=”highlight”>pidoftarget_process</span>
</pre>
これは、用語シグナルをプロセスに送信します。, シグナルという用語は、プロセスを終了してください。 このプログラムのクリーンアップ操作を実行しますならびに出ます。,
プログラムが誤動作しており、ターム信号が与えられたときに終了しない場合、KILL
信号を渡すことによって信号をエスカレートすることができます。
<pre>
kill-KILL<spanクラス=”ハイライト”>pidoftarget_process</span>
</pre>
これは特別なプログラムに送信されないシグナル。,
代わりに、オペレーティングシステムのカーネルに与えられ、プロセスをシャットダウンします。 これは、送信された信号を無視するプログラムを迂回するために使用されます。
各信号には、名前の代わりに渡すことができる番号が関連付けられています。 たとえば、”-TERM”の代わりに”-15″を渡し、”-KILL”の代わりに”-9″を渡すことができます。
他の目的のために信号を使用する方法
信号はプログラムをシャットダウンするために使用されるだけではありません。 他のアクションを実行するためにも使用できます。
たとえば、多くのデーモンは、HUP
が与えられたとき、またはハングアップシグナルが与えられたときに再起動します。, Apacheはこのように動作するプログラムの一つです。
<pre>
sudo kill-HUP<span class=”highlight”>pidofapache</span>
</pre>
上記のコマンドは、apacheが設定ファイルをリロードし、コンテンツの提供を再開します。,
killで送信できるすべてのシグナルをリストするには、次のように入力します。
kill -l
プロセスシグナルを名前で送信する方法
シグナルを送信する従来の方法はPidを使用していますが、通常のプロセス名でこれを行う方法もあります。,
pkill
コマンドはkill
とほぼ同じ方法で動作しますが、代わりにプロセス名で動作します。
pkill -9 ping
上記のコマンドは次のとおりです。
kill -9 `pgrep ping`
特定のプロセスのすべてのインスタンスにシグナルを送信するには、killall
コマンドを使用できます。
killall firefox
上記のコマンドは、コンピュータ上で実行されているfirefoxのすべてのインスタンスにtermシグナルを送信します。,
プロセスの優先順位を調整する方法
多くの場合、サーバー環境でどのプロセスが優先されるかを調整したいと思うでしょう。
一部のプロセスは状況にとってミッションクリティカルと見なされる場合がありますが、残りのリソースがある場合はいつでも実行される場合
Linuxはnicenessと呼ばれる値によって優先順位を制御します。
優先度の高いタスクは、リソースも共有しないため、あまり良くないと見なされます。 一方、優先度の低いプロセスは、最小限のリソースのみを取ることを主張するので、優れています。,
記事の冒頭にtop
を実行したとき、”NI”という列がありました。 これはプロセスのnice値です。
top
Nice値の範囲は、システムに応じて”-19/-20″(最高優先度)から”19/20″(最低優先度)までです。,
To run a program with a certain nice value, we can use the nice
command:
<pre>
nice -n 15 <span class=”highlight”>commandtoexecute</span>
</pre>
This only works when beginning a new program.,=”9b4b74b24a”>
:
<re>
renice0<pan class=”ハイライト”を使って>PIDtoprioritize<span>
<pre>
注意:ながら素敵な動作とコマンド名による必要renice運を呼び出しのPID
締結にあたって
プロセス管理が課題とは難しい場合もあり新しいユーザーに把握するために使用するツールと異なるグラフィカルます。,
しかし、アイデアはよく知られており、直感的であり、少し練習すると自然になります。 でプロセスに関わるすべいタイプは、コンピュータシステムの学習が有効であるという制御が必須です。
<divクラス=”著者”>ジャスティン-エリングウッドによって</div>
Leave a Reply