PHP로 작성된 스크립트가 cron 작업에 의해 시작되었습니다. 이것은 장시간 실행되는 스크립트이며, 마지막 작업이 완료되기 전에 종종 다른 인스턴스를 시작합니다. 괜찮아. 나는이 스크립트의 3 인스턴스가 주어진 시간에 실행되도록 허용합니다.PHP/Cron 동시 실행 스크립트 수 제한
exec('ps -A | grep nameofmyscript', $results);
if (count($results) > 4) {
echo "Already Running\n"
die(0);
}
그것은 작동하지만 더 나은 방법을 찾고 있어요 :
나는 스크립트의 상단에이 코드 3 개 인스턴스에 스크립트를 제한 할 수 있습니다. 이 접근법은 스크립트의 이름을 변경하고 코드 줄을 변경하는 것을 잊어 버렸을 때 몇 주 전에 되돌아 왔습니다. 또한 스크립트가 이미 실행중인 프로세스와 비슷한 이름으로 지정되면 실패합니다.
당신은 이름 배치를 자동화 할 수
나쁜 접근 방식이 아닙니다. 유일한 단점은 고아 pid 파일을 정리하는 또 다른 주기적으로 실행되는 스크립트가 필요하다는 것입니다. PHP (또는 그 언어에 대한 언어)가 항상 정상적으로 종료되는 것은 아닙니다. – mellowsoon
@ mellowsoon : 파일 수정 시간을 확인하십시오. 5 분 이상이면 PID를 삭제하십시오. (time() - filemtime ($ path)> 5 * 60) – Wiliam