2010-05-09 2 views

답변

0

이렇게하는 방법에는 여러 가지가 있습니다. 하나의 간단한 옵션은 프로세스의 로그에서 타임 스탬프를 확인하는 cron 작업을 실행하는 것입니다 (물론 프로세스가 무언가를 정기적으로 기록하는지 확인하십시오).

0

자신 만의 윤회 직업을 굴려보세요. 백그라운드 프로세스가 PID를 얻은 다음 시작될 때 미리 지정된 특정 위치에 기록합니다. 다른 프로세스 (또는 cron)가 해당 PID를 읽도록 한 다음 기호 링크 proc/{pid}/exe을 확인하십시오. 해당 링크가 없거나 프로세스가 아닌 경우 다시 시작해야합니다.

PHP를 사용하면 posix_getpid()를 사용하여 PID를 얻을 수 있습니다. 그런 다음 fopen()/fwrite()을 사용하여 파일에 기록하십시오. 심볼릭 링크를 읽으려면 readlink()을 사용하십시오 (반환 값으로 FALSE을 기록해 두십시오).

[email protected]:~$ echo $$ 
13737 
[email protected]:~$ readlink /proc/13737/exe 
/bin/bash 

당신이 프로세스가 시작되는 PID를 알면, 당신은 아직 살아 있는지 확인하고, 그 리눅스 수 : 그래서,

여기에 심볼릭 링크가 작동하는 방법의 간단한 bash는-ified하게 예입니다 PID를 재활용하지 않았습니다 (매우 오랜 시간 실행 된 시스템에서는 PID 재활용 만 표시되지만 발생합니다).

이것은 아주 아주 저렴한 작업으로 매분 30 초 또는 그보다 짧은 간격으로 작업을 수행 할 수 있습니다.

관련 문제