Linuxプロセスを使用することは、多くの場合、プロセスIDまたはPIDを知ることを意味します。 それは、実行中の各ソフトウェアに与えられたユニークな数字です。 それが何であるかを知るための2つの方法を以下に示します。
LinuxプロセスIDとは何ですか?
PIDOFコマンドでLinux PIDを取得する方法
LinuxでPGREPコマンドでPIDSを見つける方法
LinuxプロセスIDとは何ですか?
内部的には、Linuxは、プロセスIDまたはPIDと呼ばれる一意のID番号を割り当てることにより、実行中のプロセスを追跡します。 すべての実行アプリケーション、ユーティリティ、デーモンにはPIDがあります。
PIDは単純な整数値です。 新しく起動したプロセスは、発行された最後のPIDよりも高いPIDを受け取ります。 したがって、最高のPIDを持つプロセスは、最新のプロセスです。つまり、最近のプロセスです。 これは、システムがPIDの最大値に達するまで続きます。
PIDの上限は32768です。その数値に到達すると、Linuxはスタートに戻り、以前所有していたプロセスが終了したため、自由になったPIDを探します。
1のPIDを使用したプロセスは、Linuxが起動プロセスによって起動されたときに起動される最初のプロセスです。 SystemDベースのシステムになります
SystemD
。 他のシステムでは、そうなる可能性があります
初期化
、一部のLinux分布は、次のような代替品を使用しています
openrc
また
S6
。
通常、そのプロセスに関して何らかのアクションを実行したいため、プロセスのPIDを発見すると便利な場合があります。 あなたが知っているときにプロセスのPIDを見つける2つの異なる方法があります 名前 プロセスの。
関連している: UNIX PIDとは何ですか?それらはどのように機能しますか?
PIDOFコマンドでLinux PIDを取得する方法
pidof
コマンドは、「pid」と「of」の組み合わせと考えることができます。 このプロセスのPIDは何ですか? パラメーターなしでコマンドを使用しても、何もしません。 それは静かにあなたをコマンドプロンプトに返します。 プロセス名を指定する必要があります。
pidof
バッシュシェルのPIDは8304です。
詩
指図。 私たちがする必要があるのは、電話することだけです
詩
パラメーターなし。 現在のセッションで実行されているプロセスについて報告します。
なぜなら
詩
それが見つけることができるすべてのプロセスに関するレポートは、それ自体を含む、それは私たちにあります
バッシュ
プロセスとa
詩
プロセス実行。 予想されるように、
バッシュ
プロセスには同じPIDがあります
pidof
報告されています。
複数の端末ウィンドウが開いている場合、
pidof
それらすべてについて報告します。
PIDは、最高から最低まで、または言い換えれば、最新から最古のものにリストされていることに注意してください。
これが示さないのは、あなたがそれらのすべてのプロセスの所有者ではないかもしれないということです。
pidof
誰が所有しているかに関係なく、一致する名前を持つすべてのプロセスを見つけます。 出力をパイピングすることで、さらに詳しく見てみましょう
グレップ
。 を使用しています
-e
(すべてのプロセスを選択)と
-f
(完全なリスト)オプション
詩
。
BASHプロセスの2つはユーザーDaveに属し、3つ目はユーザーMaryに属します。
1つのアプリケーションが多くのプロセスを生成する場合があり、それぞれが独自のPIDを受信します。 これがGoogle Chromeで得られるものです。
デフォルトでは、
pidof
すべてのプロセスに関するレポート。 必要に応じて、これらのプロセスの最新のものだけを求めることができます。
-s
(シングルショット)オプションはまさにそれを行います。
使用するには
殺す
コマンドに
手動で殺す
すべての
クロム
プロセスは退屈です。 プロセスのリストを変数にキャプチャすると、その変数をに渡すことができます
殺す
指図。
殺す
コマンドはそのコマンドで複数のPIDを受け入れることができるため、私たちの入力を喜んで受け入れ、私たちのためのすべてのプロセスを殺します。
最初のコマンドは、から出力を収集します
pidof
そしてそれを私たちの変数に割り当てます、私たちは私たちが命名しています
pid
。 する必要はありません
エコー
画面には、変数が保持しているものを示すためにそれを行っています。
変数をに渡します
殺す
コマンド、次に使用します
pidof
もう一度、Chromeプロセスが残っているかどうかを確認します。 彼らはすべて殺されました。
の1つの癖
pidof
シェルスクリプトのPIDを返さないということです。 のpidを返します
バッシュ
スクリプトを実行しているシェル。 スクリプトを実行しているシェルを表示するには、
-バツ
(スクリプト)オプション。
pidof
バッシュシェルのPIDを返します
詩
2つのシェルが実行されていることを示しています。 1つは、実行されているシェルです
pidof
コマンド、もう1つはスクリプトを実行しているシェルです。
LinuxでPGREPコマンドでPIDSを見つける方法
pgrep
コマンドは少し似ています
pidof
LinuxでプロセスIDを取得する際。 ただし、検索の手がかりと正確に一致するプロセスを見つけるだけでなく、名前のプロセスのpidを返します。
含む
検索テキスト。
これは、Firefoxが実行されているコンピューターの例です。
これらのコマンドはすべて、Firefoxプロセスを見つけてPIDを返します。 しかし、コマンドを入力した場合:
それ自体で、PGREPがFIを見つけたかどうかをどうやって知ることができますか refo xそして、たとえば、pと呼ばれるダメオン 再配置します MD?
追加する場合
-l
(リスト名)オプション、PGREPはPIDとともにプロセス名をリストします。
一致するプロセスの複数のインスタンスがある場合、それらはすべてリストされています。
それらは昇順でリストされていることに注意してください。これはからの出力とは逆の順序です
pidof
。 これらは、最も古いプロセスから最新のプロセスにリストされています。 私たちが見たように
pidof
、リストされているプロセスのすべてが必ずしもあなたのものではありません。
-u
(ユーザーID)オプションでは、検索テキストに一致するプロセスを検索できます。
ユーザー
。
今回は、結果に3つのバッシュプロセスが表示されます。 もう1つはによって使用されています
メアリー
。
また、特定のユーザーのすべてのプロセスを確認するように依頼できます。
完全なコマンドラインを表示するには、使用します
-A
(完全なリスト)オプション。
PID所有権についての言葉
すべてのシステムプロセスが所有されているわけではありません ルートユーザー 。 もちろん、多くはそれらのすべてではありません。 たとえば、このコマンドは次のとおりです。
それは失敗します
根
そのプロセスを所有していません。 実際の所有者は、「Avahi」と呼ばれるシステムユーザーです。 正しいユーザー名を使用して、コマンドは機能します。