sudo fusionr로 표시된 프로세스를 종료하고 COMMAND 열을 기준으로 필터링합니다.

sudo fusionr로 표시된 프로세스를 종료하고 COMMAND 열을 기준으로 필터링합니다.

아래 줄을 사용하여 GPU를 사용하는 프로세스를 볼 수 있었으며 그 중 일부에는 COMMAND 열 아래에 Python이 언급되어 있습니다.

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 프로세스를 종료해야 하는 한 줄입니다 /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*하고 해당 프로세스를 하나씩 종료할지 묻는 메시지를 표시합니다.

$ 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 명령(작동해야 함)을 종료하는 한 줄 명령은 아니지만 fuser | grep | cut | kill각 PID를 수동으로 입력하는 것보다 빠릅니다.

관련 정보