/
이름으로 process id 를 가져오는 pidof 명령어 사용법

이름으로 process id 를 가져오는 pidof 명령어 사용법


Process ID (PID) 는 lsof/wiki/spaces/LINC/pages/887423478등의 프로세스 관련 명령어를 사용할 때 필수 옵션입니다.


시스템을 운영하다 보면 fork-exec 으로 묶인 부모 자식 관계를 가진 여러 프로세스들의 ID 가 필요한 경우가 있습니다.

예로 apache httpd 를 실행하면 동일한 이름으로 여러 프로세스가 생기는 데 httpd 라는 이름을 가진 모든 프로세스 ID 를 가져오고 싶지만 /wiki/spaces/LPT/pages/887554398는 이름으로 PID 를 가져오는 기능이 없습니다.


이럴 때 pidof 명령어를 사용하면 이름으로 PID 를 가져올 수 있으며 사용법은 pidof 명령어 뒤에 PID 를 가져올 이름을 주면 됩니다.

예로 아래는 현재 실행한 nginx 프로세스의 모든 PID 를 출력하며 5 개의 PID 가 출력되므로 nginx 가 5개 실행된 것을 알수 있습니다.

$ pidof nginx

27007 27006 27005 27004 27003

아래는 현재 시스템에서 실행한 bash 의 프로세스 ID 를 출력합니다.

$ pidof bash

16126 15927

pidof 명령어는 ps 와 awk 를 조합해서 다음과 같이 만들 수 있습니다. 예로 다음은 bash 의 모든 PID 를 출력합니다.

ps -eaf | grep bash | grep -v grep | awk '{print $2}'


하나의 pid 만 리턴

-s 옵션을 주면 하나의 pid 만 리턴합니다.

$ pidof -s nginx

27007


script 실행하는 pid 정보

shell 이나 의 경우 스크립트를 실행하는 경우가 많은데 -x 옵션 뒤에 스크립트 명을 주면 특정 스크립트를 실행하는 shell 의 pid 정보만 얻을 수 있습니다. 예로 다음은 run.sh 를 실행하는 PID 를 출력합니다.

$ pidof -x run.sh
104946

-x 옵션을 사용할 경우 bash run.sh 처럼 실행한 경우 출력되지 않으며 ./run.sh 같이 실행해야 합니다.


활용

kill 과 연결

pidof 로 가져온 모든 프로세스 ID 에 kill 로 시그널을 전송할 수 있습니다.

kill -INT "$(pidof httpd)"


같이 보기

Related content

리눅스에서 프로세스 이름으로 프로세스 id 확인
리눅스에서 프로세스 이름으로 프로세스 id 확인
More like this
lsof 사용법
lsof 사용법
More like this
리눅스 슈퍼 바이저 데몬(Linux super visor daemon)로 프로세스 관리하기
리눅스 슈퍼 바이저 데몬(Linux super visor daemon)로 프로세스 관리하기
More like this
구동 프로세스 최소화
구동 프로세스 최소화
More like this
nohup 를 대체하는 systemd-run 명령어 사용법
nohup 를 대체하는 systemd-run 명령어 사용법
More like this
서비스 관리하기
서비스 관리하기
More like this