nohup php file.php > /dev/null 2>&1 &
大なり小なり (>
) などのコマンドで、プログラムの出力をどこかにリダイレクトします。この場合、何かが /dev/null
にリダイレクトされています 、そして何かが &1
にリダイレクトされています
標準イン、アウト、エラー
プログラムの入力と出力には 3 つの標準的なソースがあります。標準入力は通常、対話型プログラムの場合はキーボードから、または別のプログラムの出力を処理している場合は別のプログラムから取得されます。プログラムは通常、標準出力に出力し、場合によっては標準エラーに出力します。これら 3 つのファイル記述子 (「データ パイプ」と考えることができます) は、しばしば STDIN, STDOUT, and STDERR
と呼ばれます。 .
名前が付けられていない場合もありますが、番号が付けられています。それらの組み込みの番号付けは 0, 1, and 2
です 、その順序で。デフォルトでは、明示的に名前を付けたり番号を付けたりしない場合、STDOUT
について話していることになります .
上記のコマンドは、標準出力を /dev/null
にリダイレクトしています 、これは、不要なものをダンプできる場所であり、標準エラーを標準出力にリダイレクトします( &
を配置する必要があります これを行うと、宛先の前に表示されます)。
したがって、簡単な説明は、「このコマンドからのすべての出力は、ブラック ホールに押し込まれる必要があります」です。これは、プログラムを非常に静かにする 1 つの良い方法です!
&
最後に、コマンドをバックグラウンドに置きます。
参照:https://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/
スクリプトにエラーが含まれていませんか?これにより、通常、「実行が非常に迅速に終了する」 "。
最初に、以下を追加します:
error_reporting(E_ALL); ini_set('display_errors', 1);
スクリプトの先頭でエラーを表示するには、次を使用できます:
nohup php filename.php &
セッションが切断された場合やユーザーがログアウトした場合でも、nohup はコマンドを実行します。
または
nohup php filename.php >/dev/null 2>&1 &
上記と同じですが、nohup.out
を作成しません ファイル。
以下も使用できます。
ignore_user_abort(1);
クライアントの切断でスクリプトの実行を中止するかどうかを設定します
`set_time_limit(0);`
スクリプトの最大実行時間を制限します。この場合、プロセスが終了するか、Apache プロセスが再起動するまで実行されます。
#Notesphp
そして filename.php
パスはフルパスで指定できます 、php
の代わりに と filename.php
、 /usr/bin/php
を使用できます と /full/path/to/filename.php
.
フルパスを推奨 ファイルが見つからないを回避する エラー。
セッションが終了すると、プロセスが終了する場合があります。
nohup php filename.php
を使ってみてください