4

exec(); を介して 2 つのコマンドを実行する必要があります。最初のコマンドは (Plesk パネル) サブスクリプションを呼び出すラッパーで、2 番目のコマンドも dns の plesk コマンドです。

注: サブスクリプションの追加を実行すると、Apache が再起動します!

私の質問は次のとおりです。2番目のコマンドを失うことなくLinux側で両方のコマンドを実行するために、何らかの方法でexecを呼び出すことはできますか?

元:

exec(("/wrapper2 3 --create ... && /wrapper2 4 --update-soa example.com ... ) > /dev/null 2>&1 );

PHPは両方のコマンドをLinuxに送信して実行しますか、最初のコマンドの後にApacheを再起動し、2番目のコマンドを実行できませんか?

ありがとう

4

4 に答える 4

2

うーん...私は悪いことを考えています。一般に、プロセスを実行し続ける必要があるときに、プロセスがその親に再起動するように指示することは、悪い考えです。しかし、たとえそれが良い考えだったとしても - Apache はそのコンテキストでの PHP の親プロセスです (do ps -A、あなたは見えませんPHP)、それを再起動して同時に実行し続けることができるとは想像できません.

私は次のようにアプローチします。遅延を埋めることができる場合は、特定のファイルが存在するかどうかを cron ジョブで検索し、存在する場合は、必要な 2 つのコマンドを実行します。最悪のシナリオでは、実行したい 2 つのコマンドを含むファイルを PHP で出力し、そのファイルを cron で実行します。

于 2011-06-23T14:20:36.957 に答える
1

私の理解では、問題はApacheが実行中のスクリプトの親になるという事実にあります。Apacheがシャットダウンされると、スクリプトもシャットダウンされます。

ある種のderp-yセットアップに対処できない場合は、サーバーを再起動する必要があるときを探すcronジョブをセットアップできます(タッチで作成したファイルまたはPHPからのファイルのいずれか)。これは、外部のすべてを処理できますApacheのプロセスのコンテキストの。

ちょっと汚い考え。:(

于 2011-06-23T14:47:08.187 に答える
0

apacheの再起動が、コマンドの実行時間が長すぎるか、多くのシステムリソースにコストがかかり、apacheサブプロセスが終了する理由だと思います。mod_phpの代わりにfastcgiモードを使用してみてください。

シェルファイルを作成して、2つのコマンドを実行できます。

于 2011-06-23T14:18:08.743 に答える
0

コマンドをシェルスクリプトに入れて、そのスクリプトを実行します。それほど複雑ではなく、念のため、Apache の再起動時や cron 経由など、他のツールで呼び出すことができます。

于 2011-06-23T14:22:33.150 に答える