ps ax | grep -i 'php complete.php'
<?php
exec("ps ax | grep -i 'php complete.php'", $pids);
if(!empty($pids)) {
die("already running");
}
내 ps ax를 확인하려고했지만 complete.php를 보지 않았습니다. complete.php가 실행 중이면 아무 것도 출력하지 않는 폴더를 확인했습니다. .PHP 스크립트가 실행 중인지 확인
거짓 양성을 나타냅니다. complete.php 스크립트가 현재 실행 중인지 확인하려면 어떻게합니까?
이유는 동기식으로 실행하기를 원하기 때문입니다. 그리고 2 분마다 complete.php를 실행하여 무한 루프가 cron 작업처럼 작동하기 때문입니다.
'그렙 -i PHP는 complete.php'는 가양를 창조하는 PROCESSLIST에있을 것입니다. 빠르고 & 더러운 해결책은'grep -i php [c] omplete.php'이다. (당신이 선택한 한 글자 주위에'[]'를 추가하면된다.)하지만,보다 견고한 해결책은 보통 pid 파일과 같은 것으로 작업한다. 그것을 실행하고 계속 실행하고 싶다면,'감독자 (supervisor) '와 같은 것을 사용하면 시스템을 계속 유지할 수 있습니다. 그렇지 않으면 시스템이 sysvinit/systemd/upstart 등을 사용하는지 여부에 달려 있습니다. 최선의 행동 방침은 무엇입니까? – Wrikken
PHP에서'exec ('ps ax', $ o); print_r ($ o); 리턴이 무엇인지 확인하십시오. 줄이 끊어 졌습니까? –