OS/Linux

Linux > 프로세스의 PID를 알아내어 프로세스 죽이기

Krevis 2024. 3. 14. 09:34

방법 1

$ ps -ef

모든 프로세스를 자세하게 출력한다

 

$ ps -ef | grep 검색어 | grep -v grep

프로세스 중 검색어를 포함하는 행을 출력한다 (grep 명령 자체는 제외하고)

 

$ ps -ef | grep 검색어 | grep -v grep | awk '{ print $2 }'

출력 행을 칼럼으로 구분하여 2번째 칼럼(PID)을 출력한다

 

$ kill -15 `ps -ef | grep 검색어 | grep -v grep | awk '{ print $2 }'`

특정 PID를 가진 프로세스를 종료한다

방법 2

pgrep을 사용하면 더 쉽게 PID를 알아낼 수 있다

$ pgrep -f 검색어

 

$ kill -15 `pgrep -f 검색어`

 

첫 번째 방법보다 훨씬 간단하다

 

그런데 위 명령을 터미널에서 실행 시엔 문제가 없는데, 명령의 결과가 Exit code: 0으로 끝나야만 하는 어떤 환경에서 실행 시 아래와 같은 에러가 발생했다.

exit code : -15

 

 

이를 회피하려면 출력을 백그라운드로 돌리면 된다

 

$ kill -15 `pgrep -f 검색어` &

 

단, 스크립트에서 해당 명령이 마지막이어야 함.

 

이 부분은 좀 더 확인이 필요하다