サブプロセスを使用してプロセスを開始し、バックグラウンドで実行します。これはサーバー アプリケーションです。プロセス自体は、シン ラッパーを使用した Java プログラムです (これは特に、Java を明示的に呼び出さなくても実行可能ファイルとして起動できることを意味します)。
Popen を使用してプロセスを実行しています。Shell=False を設定すると、プロセスは実行されますが、1 つではなく 2 つのプロセスが生成されます。最初のプロセスには親として init があり、ps を介して検査すると、生のコマンドが表示されるだけです。ただし、2 番目のプロセスは拡張された Java 引数 (-D フラグと -X フラグ) を使用して表示されます。
興味深いことに、shell=True を設定すると、コマンドが失敗します。コマンドにはヘルプ メッセージがありますが、引数リストに問題があることを示しているようには見えません (問題があるはずはありません)。Popen への shell という名前の引数を除いて、すべて同じです。UbuntuでPython 2.7を使用しています。ここで何が起こっているのかよくわかりませんが、助けていただければ幸いです。Java コマンドが exec/fork を実行している可能性があると思いますが、何らかの理由で、Python から起動したときに親プロセスが停止していません。
私は有望に見えたが、私が経験している行動を変えないこのSOの質問を見ました。