サブプロセスを使用してプロセスを開始し、バックグラウンドで実行できるようにするのはサーバーアプリケーションです。プロセス自体は、薄いラッパーを持つJavaプログラムです(特に、Javaを明示的に呼び出すことなく実行可能ファイルとして起動できることを意味します)。1つではなく2つのプロセスを開始するサブプロセス
私はPopenを使用してプロセスを実行していますが、shell = Falseに設定すると実行されますが、1つではなく2つのプロセスが生成されます。最初のプロセスは親プロセスとしてinitを持っていますが、psで調べるとrawコマンドが表示されます。しかし、2番目のプロセスは展開されたjava引数(-Dと-Xフラグ)で表示されます。これはコマンドを手動で実行したときにどのように見えるか、どのように見えるかです。
興味深いことに、shell = Trueを設定すると、コマンドは失敗します。コマンドにはヘルプメッセージがありますが、引数リストに問題があるとは思われません(存在しないはずです)。 Popenの引数に名前を付けたシェル以外はすべて同じです。 私はUbuntuでPython 2.7を使用しています。何がここで起こっているのか分かりませんが、どんな助けもありがたいです。私は、javaコマンドがexec/forkを行っている可能性があり、何らかの理由で、Pythonで起動するときに親プロセスが死んでいない可能性があると思います。
このSO questionを見ましたが、これは有望そうですが、私が経験している動作を変更しません。
この質問はかなり漠然としています。ラッパーと呼び出しの両方のソースがなくても、答えは推測です。言われているように、記載された症状を考えると、そのような推測を教育するためのかなり強力な根拠があります。 –