を終了します。また、Javaプログラムが終了すると、Pythonスクリプトはもはや実行されません。Javaプロセスはすぐに次のように私はプロセスを作成してい
答えて
実行したコマンドはnohup
であり、すぐに終了しました。 nohup
個別のPythonプロセスが起動しましたが、これはプロセスではありませんp
が制御しています。
nohup
と&
はなぜ必要な機能ではないのですか?あなたは、単にPythonのサブプロセスを実行したい場合は、単に呼び出す:
Process p = Runtime.getRuntime().exec("/usr/bin/python " + filePath);
注それは配列を受け取りexec
のオーバーロードを使用することも、より安全だということを、あなたは文字列連結を自分で行う必要はありませんので、 (したがって、ある種のセキュリティ悪用を避ける)。
Process p = Runtime.getRuntime().exec(new String[]{"/usr/bin/python", filePath});
またはProcessBuilder
と::わずかに構文の変更
Process p = new ProcessBuilder("/usr/bin/python", filePath).start();
助けてくれてありがとう。私が持っているように見える問題は、バックグラウンドプロセスが実際に直ちに終了することです。私は端末から同じコマンドを実行するとうまく動作しますが、Javaプログラムから実行して、それを実行しているすべてのPythonプロセスを見ると、リストされません。私はそれを起動する必要がありますWebアプリケーションを使用するに行くとき – SVN600
@ SVN600をログに追加し、コードをデバッグを追加しようとすると接続できません。プロセスが終了するように具体的に[wait](https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#waitFor--)し、[exit code](https ://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#exitValue--)、[stdout](https://docs.oracle.com/javase/8/docs/) api/java/lang/Process.html#getInputStream--)、[stderr](https://docs.oracle.com/javase/8/docs/api/java/lang/Process.html#getErrorStream--) 。これらは、プロセスがクラッシュする理由についてのヒントを提供するはずです。 – dimo414
Sean Brightが言いましたように、実行しているスクリプトの末尾に「&」という文字が含まれています。基本的にすべての* nixシステムで。 makeコマンドをタイプして、アンパサンドを使用すると、そのプロセスはバックグラウンドで実行されます。 Javaプロセスの呼び出しが終了したのはそのためです。
バックグラウンドでコマンドを実行しないでください( '&'はありません)。Process.isAlive()を定期的に呼び出して、プロセスが終了したかどうかを判断するほうがよいでしょう。
- 1. Javaの次のように私が作成したプロセスを持っているプロセスの入力ストリーム
- 2. Javaプロセスの作成
- 3. Javaのキル・プロセスは、私はこのような私のプロセスを実行しているProcessBuilderを
- 4. SonarQubeは2つのJavaプロセスを作成しています
- 5. Javaクラスは、私はアンドロイドのエミュレータを起動するので、のようなプロセスを作成している
- 6. Javaが新しいプロセスを作成しないようにする
- 7. 親プロセスに応じて子プロセスを作成する方法は?
- 8. こんにちは、私は次の操作を実行しようとしているプロセス
- 9. どのプロセスが私のDLLプロセスを作成しますか?
- 10. 新しいプロセスを作成するユニットテストコードはどのようにして作成しますか?
- 11. 私は、Windowsのプロセスのウィンドウにスクリーンショットを作成しようとしています
- 12. fork(新しいプロセス)またはスポーン(子プロセス)によって作成された新しいnode.jsプロセスは、独自の別のコールスタックを取得しますか?
- 13. プロセスはどのようにしてELFファイルから作成されますか?
- 14. 私は次のように場しのぎのプロセスを使用してのHTMLメールテンプレートを持っている
- 15. は、どのように私は、FTPやメール、別のプロセスを行うプロセスを持って作成し、ファイルの1つのJavaプロセスを書いて、読み取り/書き込みの問題(のJava/EE)
- 16. 子プロセスが孤立したプロセスになるのを防ぐ
- 17. あまりにも多くのプロセスを作成して親プロセスのみを終了するようです
- 18. fork()によって作成された子プロセスによる親プロセスのヒープセクションへのアクセスは合法ですか?
- 19. OSXでコマンドラインのJavaプロセスがフォーカスを奪うのを防ぐにはどうしたらいいですか?
- 20. `hash`は、私は次の行でスクリプトを持っているプロセス
- 21. C#が、私は次のコードしているプロセスの終了
- 22. pyInstallerの内蔵のWindows EXEは、私は次のように複数のプロセスを作成するために、Pythonのmultiprocessing.Poolライブラリを使用していmultiprocessing.pool
- 23. 初級 - 私は次のように作成したJavaの2次元アレイ
- 24. 私はPIDを使用してkillプロセスを作成しています
- 25. CreateToolhelp32Snapshotから私のプロセスを防ぐには?
- 26. は、次のように私は新しいオブジェクトを作成していたPerl
- 27. は作成プロセスを検出します
- 28. SimGridでvectorを使用してプロセスを作成するには?
- 29. Oracle12c:私は次のようにトリガーを作成しよう
- 30. 子プロセスの生成からプロセスを生成するのを防ぐにはどうすればよいですか?
は '&'最後のオフを取ります。 –