新しいファイルが作成されたときに、(inotifywait を使用して) フォルダーを監視し、プロセス (他の複数のサーバーに情報を送信してデータベースを更新するための php スクリプトですが、それは関係ないと思います) を実行するためのバックグラウンド シェルを作成しました。初期化。
私の問題は、スクリプトが実際に終了した後、その理由が理解できないことです(PHPの実行であっても、バッファがいっぱいにならないように出力をファイルにリダイレクトしました)。
Ubuntu 12.04 サーバーと最新バージョンの php を使用しています。
これが私のスクリプトです:
#!/bin/sh
#get the script directory
SCRIPT=$(readlink -f "$0")
script_path=$(dirname "$SCRIPT")
for f in `ls "$script_path"/data/`
do
php myscript.php "$script_path"/data/$f &
done
#watch the directory for file creation
inotifywait -q -m --format %w%f -e create "$script_path"/data/ | while read -r line; do
php myscript.php "$line" &
done