리눅스 pkill
IT 위키
더 많은 작업
프로세스 이름이나 사용자, 터미널 등의 조건에 맞는 프로세스를 찾아 시그널을 보낸다.
- pgrep과 같은 검색 조건을 사용하며, PID를 출력하는 대신 시그널을 보낸다.
- 시그널을 지정하지 않으면 SIGTERM(15)을 보낸다.
- 프로세스 이름은 정규 표현식으로 부분 일치 검색된다.
- procps-ng 패키지에 포함되어 있다.
- 경로 : /usr/bin/pkill
$ pkill [-시그널] [옵션] [패턴]
- -시그널, --signal 시그널 : 보낼 시그널을 번호나 이름으로 지정한다. (예: -9, -KILL, --signal HUP)
- -f, --full : 프로세스 이름뿐 아니라 전체 명령행을 패턴과 비교한다.
- -x, --exact : 프로세스 이름이 패턴과 정확히 일치하는 경우만 대상으로 한다.
- -u, --euid 사용자 : 지정한 유효 사용자(EUID)의 프로세스만 대상으로 한다.
- -U, --uid 사용자 : 지정한 실제 사용자(UID)의 프로세스만 대상으로 한다.
- -G, --group 그룹 : 지정한 실제 그룹(GID)의 프로세스만 대상으로 한다.
- -t, --terminal 터미널 : 지정한 제어 터미널(예: pts/1)에 연결된 프로세스만 대상으로 한다.
- -P, --parent PPID : 지정한 부모 프로세스의 자식 프로세스만 대상으로 한다.
- -g, --pgroup PGID : 지정한 프로세스 그룹의 프로세스만 대상으로 한다.
- -n, --newest : 조건에 맞는 프로세스 중 가장 최근에 시작된 하나만 대상으로 한다.
- -o, --oldest : 조건에 맞는 프로세스 중 가장 오래된 하나만 대상으로 한다.
# 이름에 httpd가 포함된 프로세스를 종료한다. # pkill httpd # pts/1 터미널에 연결된 모든 프로세스를 강제 종료한다. (해당 터미널 사용자 강제 로그아웃) # pkill -9 -t pts/1 # user1 사용자의 모든 프로세스를 종료한다. # pkill -u user1 # rsyslogd에 SIGHUP을 보내 설정을 다시 읽게 한다. # pkill -HUP rsyslogd # 명령행 전체에 backup.sh가 포함된 프로세스를 종료한다. $ pkill -f backup.sh
- 특정 터미널 사용자를 강제로 로그아웃시키는 pkill -9 -t pts/번호 형식이 자주 출제된다.
- 특정 사용자의 프로세스를 종료하는 -u 옵션을 묻는 문제가 나온다.
- 패턴은 부분 일치이므로 정확히 일치시키려면 -x 옵션을 쓴다.