문자열과 일치하는 모든 프로세스를 종료하는 명령을 작성하려고 합니다. 실행 권한이 있지만 kill -9
실행하려고 pkill -f string
하면 operation not permitted
.
이것이 내가 지금까지 가지고 있는 것입니다:
ps aux | grep -E 'python2|python3'
이것은 모든 Python 프로세스의 모든 PID를 가져옵니다. 그러나 내 sed 및 grep 마법은 실행할 pid를 구문 분석하는 데 충분하지 않았습니다.
kill -9 | <sed magic> | grep -E 'python2|python3'
위의 마법이 일어나도록 도와줄 수 있는 사람이 있나요?
답변1
pgrep "$expression" | xargs kill -9
pgrep
이는 지정된 프로세스 이름과 일치하는 PID를 검색한 다음 해당 PID를 실행에서 제외하는 데 사용됩니다 kill
.
즉, kill -9
절대로 일상적으로 수행해서는 안 됩니다. 프로세스는 TERM
(15) 신호를 처리하고 올바르게 정리되도록 설계되어야 합니다 .
또한 자신이 소유한 프로세스에만 신호를 보낼 수 있으므로(수퍼유저가 아닌 경우) 자신이 소유하지 않은 프로세스를 일치시키고 해당 프로세스에 신호를 보내려고 하면 적절한 경고를 받게 됩니다.