私はデーモンをいじくり回しており、PHPを使用してこれを行うことがどれほど実現可能か(メモリとCPUの使用量、および信頼性の観点から)疑問に思いました:
<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort(true);
set_time_limit(0);
$fp = fopen('loop.log', 'w');
fwrite($fp, date('Y-m-d H:i:s') . ' Started' . PHP_EOL);
while(1) {
fwrite($fp, date('Y-m-d H:i:s') . ' Looped' . PHP_EOL);
if (file_exists('loop.stop')) {
break;
}
// Sleep for 100 seconds
sleep(100);
}
fwrite($fp, date('Y-m-d H:i:s') . ' Stopped' . PHP_EOL);
fclose($fp);
この単純な例 ( ignore_user_abortの PHP マニュアルから改作) は単なるコンテナー スクリプトです。実際の機能はwhile
ループ内に配置されます。
このスクリプトをラップトップで 7 時間実行しましたが、問題ないように見えますが、あまり効果がありません。他の誰かがこれを試しましたか?