2011-11-14 15 views
1

私は、nohupでsystem()を介してbashスクリプトを実行するための一連のコマンドを実行するPHPスクリプトを用意しています。Bashスクリプト - nohupですが、プロセスを実行したままにしますか?

SHを呼び出すためのコマンドラインは次のようになります -

system('nohup /home/me/script.sh %s %d %d 2>&1 > %s'); 

私は.SHスクリプトの実行を設定することにしたいし、それを残して、私の私のPHPスクリプトが継続に戻ります。しかし、何が起きているのか、それは開始されているのですか?

私はそれを実行するように設定してから「ハングアップ」するか、そのままにしておきますか?

答えて

3

ただ、このような終わりにアンパサンド&を追加します。

system('nohup /home/me/script.sh %s %d %d 2>&1 > %s &'); 

これは独立したサブプロセスでシェルスクリプトを実行し、PHPにすぐに戻ります。

+0

ありがとうございました。私は実際にこれを試しました。確かに、私は過去にこの作品を見てきました。しかし、なんらかの理由でそれは進んでいないようです。実行しているプログラムと何か関係がありますか?私はこのスクリプトでffmpegを設定してから別の設定を行うように戻しています。 – waxical

0

PHPを終了した後でこのシェルスクリプトを実行する場合は、setsidを使用して新しいセッションでプログラムを実行することをお勧めします。たとえばhttp://php.net/manual/en/function.posix-setsid.phpを見てください。またはsetsidプログラムを使用してください。

+0

@waxicalこれはあなたが探していた答えですか? – Adrian

関連する問題