주어진 프로세스에 대한 .pid 파일을 찾는 방법


15

monit을 설정하고 주어진 python 응용 프로그램을 모니터링하고 싶습니다. Monit은 프로세스의 .pid 파일을 보고이 작업을 수행하지만 이것이 어디에 있는지 모르겠습니다.

나는 또한 내 자신의 간단한 실행 파일을 만들고 실행하려고 시도했지만 여기에서도 .pid 파일이 생성 된 위치를 알 수 없습니다.

그리고 모든 프로세스에 .pid 파일이 있습니까?


5
모든 프로세스에 .pid파일 이있는 것은 아닙니다 . 응용 프로그램 (또는 시작 스크립트)은 명시 적으로 작성해야합니다.
bahamat

답변:


14

일반적 /var/run/으로 Redhat / CentOS 스타일 시스템 에서 데몬 화 된 프로세스의 PID 파일을 찾을 수 있습니다.

이것의 부족으로, 항상 프로세스 초기화 스크립트를 볼 수 있습니다. 예를 들어 SSH 데몬은의 스크립트로 시작됩니다 /etc/init.d/sshd. 때때로 PID가 정의 될 것입니다 (pid, PID, PIDFILE, PID_FILE 등 검색).

그러나 RHEL 스타일 시스템의 대부분의 다른 데몬 /etc/init.d/functions은 몇 가지 일반적인 기능을 위해 스크립트를 소싱합니다 .

# Set $pid to pids from /var/run* for {program}.  $pid should be declared
# local in the caller.
# Returns LSB exit code for the 'status' action.
__pids_var_run() {
        local base=${1##*/}
        local pid_file=${2:-/var/run/$base.pid}

그 소스 /etc/init.d/functions에 관계없이 PID는 살아있을 것입니다 /var/run/*.pid.

사용자 지정 응용 프로그램의 경우 PID는 래퍼 스크립트로 정의됩니다 (권장). 내가 아는 대부분의 개발자는 위의 데몬과 동일한 규칙을 따릅니다.

당신이 경우에 PID를 파일없이 만남 뭔가를 기억 MONIT뿐만 아니라 프로세스 문자열 된 patern에 모니터링 할 수 있습니다 .


1
ewwhite- 고마워요.하지만 monit procmatch anything커맨드 라인에서 시도 하면을 얻습니다 monit: invalid argument -- procmatch. 어떤 아이디어?
Yarin

어떤 버전의 Monit을 사용하고 있습니까? (유형 monit -V) 어떤 OS / 배포?
ewwhite

MONIT 5.1.1에 CentOS 6에 yummed
Yarin

또한 여러 비 데몬 프로세스에 대한 옵션은 무엇입니까? 이 답변
Yarin

@yarin EPEL 저장소에 Monit이있는 것 같습니다 . RPMForge의 EL6 버전 은 5.4입니다.
ewwhite

1

내가 취한 또 다른 접근법 :

임베디드 모드로 실행되는 데이터베이스 서버가 있고 데이터가 포함 된 응용 프로그램 디렉토리 내에 있습니다.

데이터베이스에는 .pid 파일과 같은 것이 있지만 잠금 파일이라고합니다. 이 잠금 파일을 찾기 위해 앱에서 열린 모든 파일을 나열했습니다.

$ ls -l /proc/18264/fd | cut -d'>' -f2

소켓, 파이프, 서버 파일 등을 포함한 긴 목록을 제공했습니다.

$ ls -l /proc/18264/fd | cut -d'>' -f2 | grep /home/ | cut -b40- | sort | uniq | grep titan

/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/00000000.jdb
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.info.0.lck
/windup/reports/group_report.LJfZVIavURqg.report/graph/titangraph/je.lck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.