以下の行を使用してGPUを使用しているプロセスを見ることができました。
sudo fuser -v /dev/nvidia*
印刷:
USER PID ACCESS COMMAND
/dev/nvidia0: root 1197 F...m Xorg
alireza 1451 F...m gnome-shell
alireza 5527 F...m python
alireza 5567 F.... python
alireza 5568 F.... python
コマンドラインで言及されているすべてのPythonプロセスを終了する方法。しかし、これまではPIDごとにこれを手動で行う必要がありますが、sudo kill -9 <pid>
PIDが多いと簡単ではありません。
これを自動化して高速化する方法はありますか?コマンドを作成し、COMMAND列にpytonを持つすべてのPIDを終了するのと同じですか?
答え1
編集する
これは、以下を使用してすべてのPythonプロセスを終了する必要がある1行です/dev/nvidia*
。
sudo fuser -v /dev/nvidia* 2>&1 | grep python | grep -o -E " [0-9]+ " | xargs kill
2>&1
結果の出力方法のため、fuser
リダイレクトが必要です。grep python
含まれているすべての行を選択しpython
てgrep -o -E " [0-9]+ "
PIDを抽出し、xargs kill
すべての行を終了します。
sudo fuser -v /dev/nvidia* 2>&1 | grep python
不要なプロセスが誤って選択されていないことを確認するには、まずそれを実行してください。
元の答え
次のコマンドは、ハードウェアファイルを使用するプロセスを表示し、/dev/nvidia*
そのプロセスを1つずつ終了するかどうかを尋ねるメッセージを表示します。
$ sudo fuser -ikv /dev/nvidia*
USER PID ACCESS COMMAND
/dev/nvidia0: root 1197 F...m Xorg
alireza 1451 F...m gnome-shell
alireza 5527 F...m python
alireza 5567 F.... python
alireza 5568 F.... python
Kill process 1191 ? (y/N) N
Kill process 1451 ? (y/N) N
Kill process 5527 ? (y/N) y
...
これはすべてのPythonコマンド(動作する必要があります)を終了する1行のコマンドではありませんが、fuser | grep | cut | kill
各PIDを手動で入力するよりも高速です。