web-dev-qa-db-ja.com

プロセスのIDを見つけるための端末コマンドは何ですか

コマンドラインを使用してプロセスを終了したいのですが、プロセスのIDを検索するコマンドを思い出せません。誰もがそれを知っていますか?

10
jumpnett

プロセスのID(名前を指定)を見つけるコマンドはpidofです。ただし、プロセスを強制終了することを目的としているため、pidofを使用して最初にpidを見つけるよりも優れた/簡単な方法があります。

強制終了するプロセスがその名前で一意に識別されている(またはその名前のすべてのプロセスを強制終了する)と仮定すると、そのpidを知る必要はありません。単にkillall processnameを実行できます。

同じ名前のプロセスが複数あるが、そのうちの1つだけを終了したい場合は、pidofを使用してもあまり役に立ちません。pidが得られるため、情報は得られません。どのpidが実際に強制終了するプロセスに属しているかを判断します。

この場合、ps aux | grep processnameを実行すると、指定された名前を持つすべてのプロセスと、それらが実行されているコンソール(該当する場合)およびそれらが呼び出された引数が表示されます。あなたが探しています。

プロセスがXウィンドウを開いた場合、xkillを使用して強制終了することもできます(xkillを呼び出してから、ウィンドウをクリックします)。

13
sepp2k

pgreppkillをご覧ください。これらは、ほとんどのLinuxおよびUNIXシステムにある非常に便利で強力なユーティリティです。

$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
7
sajb

ターミナルでps -Aを実行すると、現在実行中のすべてのプロセス(プロセスIDを含む)を表示できます。

4
TheXed

同様の問題もありました。 pstree -pを使用しました。これにより、プロセスIDを含む現在実行中のプロセスがわかりました。

2
Meintjes

pidof 。詳細については、man pidofを発行してください。

1
mgunes

私のお気に入りはpstree -p | grep $(program_name)です。これは実際にプロセスを把握し、強調表示し、かっこ内にpidを表示します。

私の次のお気に入り(特にプログラミング時にプロセスのすべてのpidが必要な場合)はpgrep -law ""です。これにより、実行中のすべてのpidの後にアプリケーション(絶対パス)が続きます。

これは、プログラム名が後に続くpidの場合はpgrep -lw ""に、またはすべてのpidの場合はpgrep -lに減らすこともできます

もちろん、特定のプログラム(またはプログラムの一部)の名前を検索できます。 (つまり、pgrep -lw firefはおそらく「4567 firefox」のようなものを表示します)。

1
dylnmc

重複した質問 に関する@Benからのこの答えは、私の問題を解決しました:

ターミナルでtopコマンドを使用することを検討してください。

   The  top  program  provides  a dynamic real-time view of a running
   system.  It can display system summary information as  well  as  a
   list  of processes or threads currently being managed by the Linux
   kernel.  The types of system summary  information  shown  and  the
   types,  order  and size of information displayed for processes are
   all user configurable and that configuration can be  made  persis‐
   tent across restarts.

man top 経由

0
Gui Imamura