응답하지 않는 프로세스를 이름으로 종료하지만 응답하는 프로세스는 보존합니다.

응답하지 않는 프로세스를 이름으로 종료하지만 응답하는 프로세스는 보존합니다.

어떤 이유로 응답을 멈추고 CPU 리소스를 낭비하는 Google Chrome Helper 프로세스가 상당히 많이 발생합니다. 일반적으로 를 실행 killall Google\ Chrome\ Helper하지만 이로 인해 Chrome을 다시 시작해야 하는 응답 프로세스를 포함하여 모든 것이 종료됩니다.

killall응답하지 않는 프로세스에만 영향을 미치도록 하는 플래그가 있습니까 ?

답변1

이를 수행하는 한 가지 방법은 top가장 많은 CPU를 사용하는 프로세스의 pid를 찾는 것입니다. 한 터미널에서 bash CPU 호그를 시작했습니다.

bash -c "while true; do :; done"

그런 다음 다른 터미널에서 다음과 같이 종료할 수 있습니다.

kill $( top -l2 | grep bash | sort -nrk3 | awk '{print $1;exit}' )

참고로 이건top, 이것은 GNU 버전이 아닌 BSD입니다 .

  • -l22번의 반복을 위해 실행하도록 top에 지시합니다. 첫 번째는 모든 프로세스에 대해 0% CPU를 보고하므로 무시해야 합니다.
  • 필터 grep는 단지 bash 라인입니다. grep 표현식이 출력의 다른 부분과 일치하는 경우 추가 작업이 필요할 수 있습니다 top.
  • sort출력을 세 번째 열(CPU %)을 기준으로 역순으로 정렬합니다.
  • head첫 번째 줄을 얻습니다(가장 높은 CPU)
  • cut첫 번째 열(PID)을 가져옵니다.
  • 위의 내용은 명령 대체에서 실행되며 $()숫자 PID가 직접 전달됩니다.kill

GNU/Linux 머신에서는 다음과 같습니다:

kill $(top -bn1 | grep bash | sort -nrk9 | awk '{print $1;exit}')

관련 정보