linuxでphpプログラムをバックグラウンド実行してもすぐ停止するときは、nohupをつける

PC

phpに限らずかもしれません。

linuxでコマンドの最後に「&」をつけると、プロンプトがすぐ返ってきて、コマンド自体はバックグランドで実行されます。

しかし、理由は調べ切れていませんが、「&」をつけてコマンド実行したあと、「ps」コマンドや「bg」コマンドを実行すると、「停止」と表示され停まっている場合があります。

この場合、コマンドの前に「nohup」をつけると、バックグラウンドで停止せず実行してくれます。

例:「php test.php &」⇒「nohup php test.php &」

なお、バックグラウンドでコマンド実行するときは、出力をそのままにしておくとメモリを食ってハングする場合はがある。

お作法として、出力を/dev/nulにリダイレクトするとよいです。

例:「nohup php test.php &」⇒「nohup php test.php > /dev/nul &」

ところで、「nohup」をつけると、シェルからログアウトしてもバックグラウンドで実行が継続されます。

PC