pidof — 실행 중인 프로세스의 PID 찾기
Linux / 서비스 및 프로세스 관리 / pidof.html
프로그램 이름으로 실행 중인 프로세스의 PID를 출력하는 도구.
기본 정보
| 명령어 이름 | pidof |
|---|---|
| 한 줄 소개 | 프로그램 이름으로 실행 중인 프로세스의 PID를 출력하는 도구. |
| 제공 | sysvinit-utils (배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man8/pidof.8.html |
| 지원 운영체제 | Linux |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 서비스·프로세스 (태그: 프로세스·자원 관리 (태그: 프로세스, PID, 조회)) |
이 명령어는 무엇인가?
pidof는 실행 파일 이름을 기준으로 현재 돌고 있는 프로세스의 PID를 알려 줍니다.
같은 이름의 프로세스가 여러 개면 PID를 공백으로 나열하므로 스크립트에서 재시작 처리에 쓰기 좋습니다.
어떤 문제를 해결하는가?
- 서비스 재시작 전에 기존 프로세스를 확인합니다.
- 같은 프로그램이 여러 번 떠 있는지 점검합니다.
- 스크립트에서 실행 여부를 분기합니다.
- 종료 신호를 보낼 PID를 빠르게 얻습니다.
주요 기능
이름으로 조회
실행 파일 이름을 인자로 주면 해당 PID를 출력합니다.
- 활용 상황: 프로세스가 떠 있는지 확인할 때
- 얻는 결과: PID 목록 또는 빈 출력
- 제한 사항: 경로가 아니라 이름 기준이라 오탐 가능
스크립트 분기
종료 코드와 출력으로 실행 여부를 판단합니다.
- 활용 상황: 자동 재시작 스크립트 작성 시
- 얻는 결과: 실행 여부를 바로 알 수 있음
- 제한 사항: 여러 PID가 나올 수 있어 처리 분기가 필요
단일 PID 선택
-s 옵션으로 가장 먼저 찾은 PID 하나만 출력합니다.
- 활용 상황: 하나만 처리하면 되는 경우
- 얻는 결과: PID 한 개
- 제한 사항: 여러 개가 떠 있어도 하나만 보임
설치 및 실행
설치 여부 확인
pidof --help
pacman -S sysvinit-tools # Arch (varies by distribution)
실제 사용 예제
PID 확인
nginx 프로세스의 PID를 확인합니다.
# Show PIDs of processes named nginx
pidof nginx
한 개만
첫 번째 PID만 출력합니다.
# Print only the first match
pidof -s nginx
스크립트에서 활용
실행 중일 때만 재시작합니다.
# Restart only if it is currently running
pid=$(pidof nginx) && kill -HUP $pid