私が発行するとき
ps aux | grep mtp
わかりました。
Ubuntu-+ 15934 0.1 0.0 519848 7068? 21:13 0:00 /usr/lib/gvfs/gvfsd-mtp --spawner :1.9 /org/gtk/gvfs/exec_spaw/20
したがって、この例のPIDは15934です。ただし、実行するたびにPIDが異なります。 PIDに加えてプロセスを終了する他の方法はありますか?
答え1
子プロセスを終了して新しい子プロセスを分岐する親プロセスがある可能性があります。 pstreeを使用して親プロセスを見つけることができます。
pgrep mtp | xargs -i pstree -ps {}
あるいは、psのppidオプションを使用することもできます。
pgrep mtp | while read line; do ps -p $line -o ppid; done
その後、親プロセスを終了できます。
答え2
変更プロセスを終了するには、動的に終了できます。
pkill name_of_process
または
kill -kill $(ps -A | grep name_of_process | awk '{print $1}')
ここでKillの詳細をご覧ください。https://www.thegeekstuff.com/2009/12/4-ways-to-kill-a-process-kill-killall-pkill-xkill/
ノート:grepまたはsedで実行される検索では大文字と小文字が区別されるため、これらの例を使用して特定のプロセスを終了する前に、PIDではなく一意の識別子に絞り込む必要があります。
プロセスの親プロセスを動的に見つけるには、次のようにします。
ps -o ppid=$(ps -A | grep name_of_process | awk '{print $1}')
PPIDがあるので、そこから親プロセスを終了できます。
親プロセスを終了できない場合は、最初の回避策を使用する必要があります。問題は、プロセスのPIDが思ったよりも早く変更されることがあるということです。この場合、Grepの代わりにSedを使用できます。最初の例は次のとおりです。
kill -kill $(ps -A | sed '/name_of_process/!d' | awk '{print $1}')
作業速度をさらに向上させるには、次の点を研磨する必要があります。メモこのコマンドは、other フラグを使用して他の結果を返します。-ㅏ。 ps マニュアルページを確認してください。
https://www.man7.org/linux/man-pages/man1/ps.1.html
時々、デーモンの助けを借りてプロセスが実行され続けます。あなたもそれを殺すことができることを確認してください。
考慮すべき2つの異なる点は次のとおりです。プロセスに関連付けられた端末またはそれらすべてを殺す注文する。
答え3
pkill mtp または kill -9 を使用できます。pidof mtp
mtp プロセスが複数ある場合、両方のコマンドはシステムのすべての mtp プロセスを終了します。
ラミーローゼン
答え4
pkill
プロセスを開始したコマンドの名前に基づいて開始できます(ps aux
出力の最後の11番目の列)。
sudo pkill -9 -f COMMAND_STARTING_THE_PROCESS*
あなたの場合、プロセスを開始するコマンドは次のとおりです。
/usr/lib/gvfs/gvfsd-mtp --spawner :1.9 /org/gtk/gvfs/exec_spaw/20
あなたは殺すことができますスクリプトの起動に関連するすべてのプロセスgvfsd-mtp
そして
sudo pkill -9 -f /usr/lib/gvfs/gvfsd-mtp*
注:必ず使用してくださいsudo
。