わかりました、もう一度試してみましょう。:-)
私が試してみると:
<?php
exec("java -Xms1024M -Xmx1024M -jar craftbukkit-1.4.2-R0.2.jar -o true");
?>
ウェブページは二度と戻りません。CGI がプロセスの完了を待っているためだと思いますが、サーバーであるため、もちろん完了しません。
これをローカルで試してみて、ターミナルに同じコマンドを入力すると、期待どおりに実行されるので、コマンド ラインに問題がないことがわかります。
だから...質問は:
1) exec はプロセスが完了するまでブロックしますか? 2)いいえの場合、ここで何が起こっているのか、はいの場合、どうすればその動作を変更できますか?
================================================== ===========
したがって、これは実際には一般的な質問ですが、特定の環境に含めて、なぜこれをやろうとしているのかを説明するのに役立つかもしれません. これはすべてLINUX上にあります。
PHP ページから Java プロセスをリモートで起動したいと考えています。もちろん、秘訣は、プロセスが実行され続けることです。プロセスが正常に起動したら、PHP ページを完成させたいと考えています。
では、まずどうすればよいのでしょうか。私が読んだ多くのことを試しましたが、それらを機能させることができません。
2番目の部分はもう少しトリッキーです。minecraft サーバーを停止する方法は、ターミナルで「停止」と入力することです。もちろん、そこに他のコマンドを入力して他のことを行うこともできます...標準入力から読み取るだけです。
停止したい場合、または他のコマンドを送信したい場合は、PHP スクリプトから stdin に接続し、テキストなどを送信する必要があります。
Java プロセスを起動するとき、stdin をファイルに接続してから、将来の PHP スクリプトからファイルに書き込みますか? 知らない。
正しいアプローチに関するいくつかの指針を教えてください。試してみます。それらが機能するかどうか、またはより詳細な質問があるかどうかをお知らせします。
ありがとう!