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プロセスが完了したときにのみ実行され(1時間実行され)、電子メールが届いたら、関連する時間とともに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

おすすめ記事