이 문서에서는 Linux pkill 명령의 기본 사항에 대해 설명합니다.
pkill은 주어진 기준에 따라 실행 중인 프로그램의 프로세스에 신호를 전송하는 명령줄 유틸리티입니다. 프로세스는 전체 또는 부분 이름, 프로세스를 실행하는 사용자 또는 기타 속성으로 지정할 수 있습니다.
pkill 명령은 거의 모든 Linux 배포판에 사전 설치되는 procps(또는 procps-ng) 패키지의 일부입니다. pkill은 pgrep 프로그램에 대한 기본적인 포장지이며 일치하는 프로세스 목록만 출력합니다.
pkill 명령을 사용하는 방법
pkill 명령의 구문은 다음과 같습니다.
pkill [OPTIONS] <PATTERN>
일치하는 <PATTERN>은 확장 정규식을 사용하여 지정됩니다.
옵션 없이 호출되면 pkill은 지정된 이름과 일치하는 실행 중인 모든 프로그램의 PID로 15(TERM) 신호를 전송합니다. 예를 들어, 모든 Firefox 프로세스를 정상적으로 중지하려면 다음을 실행합니다.
pkill -15 firefox
하나 이상의 실행 중인 프로세스가 요청된 이름과 일치하면 명령이 0을 반환합니다. 그렇지 않으면 종료 코드는 1입니다. 셸 스크립트를 작성할 때 유용할 수 있습니다.
일치하는 프로세스에 다른 신호를 보내려면 pkill 명령을 --signal 옵션과 함께 호출한 다음 숫자 또는 기호 신호 이름을 사용합니다. 신호를 보내는 또 다른 방법은 pkill을 실행한 다음 신호 이름 또는 번호 앞에 하이픈(-)을 붙이는 것입니다.
kill -l 명령을 사용하여 사용 가능한 모든 신호를 나열합니다.
가장 일반적으로 사용되는 신호는 다음과 같습니다.
- 1(HUP): 프로세스를 다시 로드합니다.
- 9(KILL): 프로세스를 죽입니다.
- 15(TERM): 공정을 정상적으로 중지합니다.
신호는 세 가지 방법으로 지정할 수 있습니다.
- 숫자(예: -1)를 사용합니다.
- "SIG" 접두사(예: -SIGHUP)를 사용합니다.
- "SIG" 접두사(예: -HUP)를 사용하지 않습니다.
예를 들어, Nginx 프로세스를 다시 로드하려면 다음을 실행합니다.
pkill -HUP nginx
pkill은 정규 표현식을 사용하여 프로세스 이름과 일치합니다. 항상 pgrep 명령을 사용하여 일치하는 프로세스를 인쇄한 후 신호를 보내는 것이 좋습니다. 예를 들어 이름에 "ssh"가 포함된 모든 프로세스를 나열하려면 다음과 같이 하십시오.
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
이름이 검색 패턴과 정확히 일치하는 프로세스에만 신호를 보내려면 다음을 사용합니다.
pkill '^ssh$'
캐럿(^) 문자는 문자열의 시작 부분에서 일치하고 달러는 끝에 일치합니다.
기본적으로 pkill은 프로세스 이름에만 일치합니다. -f 옵션을 사용할 경우 명령은 전체 인수 목록을 기준으로 일치시킵니다. 명령에 공백이 포함된 경우 전체 명령을 따옴표로 묶으십시오.
pkill -9 -f "ping 8.8.8.8"
-u 옵션을 사용하여 pkill이 지정된 사용자에 의해 실행되는 프로세스와 일치하도록 지시합니다.
pkill -u mark
여러 명의 사용자를 지정하려면 해당 사용자의 이름을 쉼표로 구분하십시오.
pkill -u mark,danny
옵션과 검색 패턴을 결합할 수도 있습니다. 예를 들어, KILL 신호를 보내려면 사용자 "마크"로 실행되고 이름에 "gnome"이 포함된 모든 프로세스를 다음과 같이 입력합니다.
pkill -9 -u mark gnome
가장 최근에(가장 오래된) 프로세스 또는 가장 최근에(가장 최근에) 시작된 프로세스만 표시하려면 -n(최신) 또는 -o(가장 오래된 프로세스) 옵션을 사용합니다.
예를 들어 가장 최근에 만든 화면을 중지하려면 다음과 같이 하십시오.
pkill -9 -n screen
pkill 명령은 다른 기준에 따라 실행 중인 프로그램에 신호를 보내는 데 사용됩니다.
pkill 명령에 대한 자세한 내용은 pkill man 페이지를 방문하거나 터미널에 man pkill을 입력하십시오.
참조
https://linuxize.com/post/pkill-command-in-linux/
'SW > 리눅스' 카테고리의 다른 글
Linux : CentOS 8 : Apache Virtual Hosts 설정 방법, 예제, 명령어 (0) | 2022.07.20 |
---|---|
Linux : Debian 10 : Python 3.8 설치 방법, 예제, 명령어 (0) | 2022.07.19 |
Linux : CentOS 8 : MongoDB 설치 방법, 예제, 명령어 (0) | 2022.07.16 |
Linux : CentOS 8 : Redmine 설치 및 구성 방법, 예제, 명령어 (0) | 2022.07.15 |
Linux : Debian 10 : Nginx Server Blocks 설정 방법, 예제, 명령어 (0) | 2022.07.14 |