Cron 작업은 PHP 스크립트가 실행 중인지 확인합니다.

Cron 작업은 PHP 스크립트가 실행 중인지 확인합니다.

Cron 작업에 문제가 있습니다. 기본적으로 서버에서 지속적으로 실행하려는 두 개의 PHP 스크립트가 있습니다. 현재 내가 사용하고 있는제한 없는루프는 계속 진행되지만 임의의 시간에 멈추는 것 같습니다.

이상적으로는 스크립트가 실행 중인지 확인하고 그렇지 않으면 시작하는 스크립트를 작성하고 싶습니다.

어떻게 해야 하는지 알고 싶습니다.

답변1

당신이 원하는 것은 cron 작업이 아닌 데몬 프로세스입니다.cron 작업은 특정 작업을 수행하는 데 사용됩니다.정기적으로(또는 시작 시),아니요프로세스를 활성 상태로 유지하는 데 사용됩니다.이 기사를 읽고 다음과 같이 매우 간단한 작업을 수행해 보시기 바랍니다.

#!/bin/sh
while true
do
   /my/script.php >> /var/log/my_script.log 2>&1
done

답변2

실행 중인 프로세스를 확인하려면 실행 중인 모든 프로세스를 나열한 다음(ps 사용) grep을 사용하여 찾고 있는 프로세스를 필터링할 수 있습니다.

 ps aux | grep YOUR_PHP_COMMAND

명령이 실행되고 있지 않을 때만 명령을 시작하려면 다음 스크립트를 사용할 수 있습니다.

CMD="/bin/sleep 3" # replace it with your command
if ! ps x|grep -v grep|grep "$CMD"; then 
  $CMD
fi

참고: "grep -v grep"을 사용하여 프로세스 목록에서 grep 프로세스를 제외해야 합니다.

CRON JOB에 넣으려면 '를 사용하여 한 줄로 묶을 수 있습니다.;'

CMD="/bin/sleep 3"  ;  if ! ps aux|grep -v grep|grep "$CMD"; then $CMD  ;  fi

CRON 작업은 작업을 정리하는 데 적합하다는 점을 기억하세요. 프로그램을 계속 실행하고 싶다면 무한 반복하고 프로그램이 끝날 때마다 프로그램을 시작하는 것이 더 나은 접근 방식입니다.

관련 정보