コマンドラインを使用してプロセスを終了したいのですが、プロセスのIDを検索するコマンドを思い出せません。誰もがそれを知っていますか?
プロセスのID(名前を指定)を見つけるコマンドはpidof
です。ただし、プロセスを強制終了することを目的としているため、pidof
を使用して最初にpidを見つけるよりも優れた/簡単な方法があります。
強制終了するプロセスがその名前で一意に識別されている(またはその名前のすべてのプロセスを強制終了する)と仮定すると、そのpidを知る必要はありません。単にkillall processname
を実行できます。
同じ名前のプロセスが複数あるが、そのうちの1つだけを終了したい場合は、pidof
を使用してもあまり役に立ちません。pidが得られるため、情報は得られません。どのpidが実際に強制終了するプロセスに属しているかを判断します。
この場合、ps aux | grep processname
を実行すると、指定された名前を持つすべてのプロセスと、それらが実行されているコンソール(該当する場合)およびそれらが呼び出された引数が表示されます。あなたが探しています。
プロセスがXウィンドウを開いた場合、xkill
を使用して強制終了することもできます(xkill
を呼び出してから、ウィンドウをクリックします)。
pgrep
とpkill
をご覧ください。これらは、ほとんどのLinuxおよびUNIXシステムにある非常に便利で強力なユーティリティです。
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
ターミナルでps -A
を実行すると、現在実行中のすべてのプロセス(プロセスIDを含む)を表示できます。
同様の問題もありました。 pstree -p
を使用しました。これにより、プロセスIDを含む現在実行中のプロセスがわかりました。
pidof
。詳細については、man pidof
を発行してください。
私のお気に入りはpstree -p | grep $(program_name)
です。これは実際にプロセスを把握し、強調表示し、かっこ内にpidを表示します。
私の次のお気に入り(特にプログラミング時にプロセスのすべてのpidが必要な場合)はpgrep -law ""
です。これにより、実行中のすべてのpidの後にアプリケーション(絶対パス)が続きます。
これは、プログラム名が後に続くpidの場合はpgrep -lw ""
に、またはすべてのpidの場合はpgrep -l
に減らすこともできます
もちろん、特定のプログラム(またはプログラムの一部)の名前を検索できます。 (つまり、pgrep -lw firef
はおそらく「4567 firefox」のようなものを表示します)。
重複した質問 に関する@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 経由