Linux ターミナルでデーモン プロセスを実装するには、crontab を使用して PHP スクリプトの実行をスケジュールできます。
crontab コマンドの機能は、特定の間隔でいくつかのコマンドの実行をスケジュールすることです。
crontabの使い方: crontab [ -e | -l | -r ] ファイル名 -e: タスクの編集 -l: タスク情報の表示 -r: 実行予定タスクの情報の削除
crontab の形式:
* * * * * コマンド
分 時 日 月 週 実行するコマンド
「*」は値の範囲内のすべての数値を表し、「/」はすべての数値を表し、「*/5」は 5 単位ごとを表し、「-」は特定の数値から特定の数値までを表し、「,」は何単位に区切るかを表します。離散的な数値。
1. crontabコマンドで直接編集
Crontab はユーザーのスケジュールされたタスクを実装できます
crontab -u //特定のユーザーの cron サービスを設定します。通常、root ユーザーはこのコマンドを実行するときにこのパラメーターが必要です
crontab -l //ユーザーの cron サービスの詳細をリストします
crontab -r //ユーザーの cron サービスを削除します
crontab -e //ユーザーの cron サービスを編集します
たとえば、root は自分の cron 設定を確認します: crontab -u root -l
別の例として、root は fred の cron 設定を削除したいと考えています: crontab -u fred -r
cron サービスを編集するときは、root ユーザーの cron 設定を編集し、crontab -u root -e と入力し、vi 編集モードに入ります。編集内容の形式は次のとおりです: * * * * * コマンド
たとえば、今すぐタスクを実行したい場合:
タスクの要件は、PHP スクリプトを 1 分ごとに実行し、実行時間を記録して result.log に保存することです。
start.php:
#!/usr/bin/php
file_put_contents('result.log','現在の実行時間:'.date("Y-m-d",time())."/r/n", FILE_APPEND);
シェル.sh:
#!/bin/sh
php start.php
ターミナル:
crontab -u root -e
#vim 編集モードに入る:
*/1 * * * * シェル.sh
:wq終了して保存します
www.2cto.com
さらに、WEB ページでは、クライアントが切断された場合 (ブラウザを閉じるなど)、PHP スクリプトは実行を継続できます。
ignore_user_abort() 関数を set_time_limit(0) および sleep($interval) とともに使用してプログラムを実装できます
ignore_user_abort(); //クライアントが切断されても (ブラウザを閉じるなど)、PHP スクリプトは実行を継続できます。
set_time_limit(0); // PHP のデフォルトの実行時間は 30 秒です。set_time_limit(0) を使用すると、プログラムを無制限に実行できます。
$interval=60*5 // 5 分ごとに実行します
する{
$fp = fopen('test.txt','a');
fwrite($fp,'テスト');
fclose($fp);
sleep($interval); // 5 分間待ちます
}ながら(本当);
?>
ignore_user_abort(); //クライアントが切断されても (ブラウザを閉じるなど)、PHP スクリプトは実行を続行できます。
set_time_limit(0); //PHP の実行時間は無制限です。 set_time_limit(0) を使用すると、プログラムを無制限に実行できます。
$interval=60*5 // 5分ごとに実行します
;
する{
$fp = fopen('test.txt','a');
fwrite($fp,'test');
fclose($fp);
sleep($interval); // 5 分間待ちます
}while(true);
?>
上記のページを実行して閉じるだけで、プログラムは実行を続けます。
神様のブログより抜粋
http://www.bkjia.com/PHPjc/478519.html