私はphpプログラムを書いてサーバーにアップロードしました。このプログラムを無限に実行したい。私のプログラムのソースは次のようなものです:
<?php
while (1<2){
make something;
}
?>
もちろん、このページをブラウザで開くと実行されますが、PC をシャットダウンすると動作しなくなります。どのブラウザでも開かずに、このプログラムを無限に実行する方法を教えてください。
これを行う:
<?php
set_time_limit(0);
ignore_user_abort(true);
while(true) {
//Do something
}
?>
しかし、非常に非常に正当な理由なしにそれを行うことは非常に非常に悪い考えです。この種のスクリプトをCLIで実行し、SIGINTまたはSIGKILLを使用して、Apacheサーバーを再起動せずにスクリプトを確実に停止することができます...(なぜそれを説明するのですか?人にしないでください、危険です...)
コマンドラインで実行するか、cronジョブとして実行します。phpファイルがシステムデーモンになっていることを確認することもできます。
http://kevin.vanzonneveld.net/techblog/article/create_daemons_in_php/
PHPをデーモンとして使用すると、PHPを無期限に実行できますが、メモリをスタックしないように、定期的にリセットする必要がある場合があります。
ところで:
while( true )
も動作します。
LinuxサーバーでJavaプログラムを無限に実行するときに、これと同じ問題が発生しました。
Linuxの「screen」コマンドを使用して問題を解決しました。手順はここにあります
popen()
新しいコマンドライン プロセスを開始するスクリプトを開始できます。したがって、目的のスクリプトを使用して CLI PHP を開始します。
デーモン (サービス) を使用できますが、スクリプトを実行する必要があります。説明はこちら