需要一個長期在背景運行的 PHP 腳本,定期寫入日誌或執行排程任務,且不因瀏覽器關閉而中斷。
sleep.php<?php
ignore_user_abort(true); // 使用者斷線也持續執行
set_time_limit(0); // 移除 30 秒執行限制
$interval = 10; // 每 10 秒執行一次
do {
include 'cron-config.php'; // 載入控制開關
if ($cron_config['run'] === 'false') {
echo "跳出迴圈";
break;
}
$fp = fopen('test.txt', 'a');
fwrite($fp, 'test '.date('Y-m-d H:i:s').PHP_EOL);
fclose($fp);
sleep($interval);
} while (true);
echo "腳本結束";
?>
cron-config.php<?php $cron_config['run'] = 'true'; // 改為 'false' 可停止腳本 ?>
| 函數 | 作用 |
|---|---|
ignore_user_abort(true) | 忽略用戶端斷開連線,腳本繼續在伺服器端執行。 |
set_time_limit(0) | 移除最大執行時間限制(預設 30 秒)。 |
sleep($seconds) | 暫停腳本指定秒數,釋放 CPU 資源。 |
nohup php sleep.php > /dev/null 2>&1 & 在背景常駐運行。