Bash는 PHP를 호출하고 PHP 프로세스가 완료될 때까지 기다립니다.

Bash는 PHP를 호출하고 PHP 프로세스가 완료될 때까지 기다립니다.

이것은 내 bash 스크립트입니다.

#!/bin/bash
timestamp() {
  date +"%T"
}
pushd 'httpdocs/DIR1/DIR2'; 
file="Lock3.key"
if [ -f "$file" ]
then
    echo "$file found, Session is already in progress" $(date)
else
    echo "$file was not found, Its safe to start the script"  $(date)
    echo "Running Ebay Stock Only Script" $(date)
#Its possible to double check if the script is running by checking memory.
#ps aux | grep "php Cron-Run.php" (Not safe)
php Cron-Run.php > Output.log
echo "Finished Running Script, Lock file is deleted by PHP, Now exiting" $(date)
fi
exit

이것은 cron 작업에서 실행되어 작동했습니다. 하지만 내가 원하는 것은 마지막 프로세스가 PHP 프로세스가 완료될 때만 실행되고(한 시간 동안 실행됨) 이메일이 도착하면 관련 시간과 함께 echo마지막 프로세스의 출력을 보는 것이 좋을 것입니다 .echo

현재 echoPHP 스크립트는 호출 후 2초 후에 실행됩니다.

답변1

대기 기능을 사용하여 프로세스가 완료될 때까지 일시 중지/기다릴 수 있습니다.

작업 섹션의 예:

#!/bin/bash
timestamp() {
  date +"%T"
}
pushd 'httpdocs/DIR1/DIR2'; 
file="Lock3.key"
if [ -f "$file" ]
then
    echo "$file found, Session is already in progress" $(date)
else
    echo "$file was not found, Its safe to start the script"  $(date)
    echo "Running Ebay Stock Only Script" $(date)
#Its possible to double check if the script is running by checking memory.
#ps aux | grep "php Cron-Run.php" (Not safe)
php Cron-Run.php > Output.log
wait
echo "Finished Running Script, Lock file is deleted by PHP, Now exiting" $(date)
fi
exit

관련 정보