私がやっているのは、シェルで実行するpythonスクリプトからプログラムを実行することです。さてこれで最初の問題は、私は多くの場合、シェルからプログラムを終了したいです同じi/oを持つPythonスクリプトからbash実行ファイルを実行するにはどうすればよいですか?
def bash(cmd):
subprocess.Popen(cmd, shell=True, executable='/bin/bash')
bash('./my/file')
:私はそれを行うことができますので、私は他の質問を読みました。通常、ターミナルから "./my/file"を実行すると、Ctrl + Cキーで停止できます。しかし、サブプロセスを使用すると、バックグラウンドで何とか実行され、 "top"コマンドでkillすることができ、bashのpidで殺すことができます。しかし、プログラムは非常に速く私は文字通りちょうどこの方法で合理的な方法でそれを殺すことができない多くのプロセスを生成します。
また、私がしたいのは、Pythonスクリプトをさらに実行する前にプログラムの実行が完了するのを待つことです。私は設定しようとしました...
process=subprocess.Popen(cmd, shell=True, executable='/bin/bash')
process.wait()
しかし、実際には、起動直後にプログラムが停止します。
私は単なるスクリプトを別々に実行することができましたが、元のpythonスクリプトの後に自分自身を実行してからプログラムが完了しなければならない3番目のスクリプトを作成せずにプログラムの結果を使用する方法はありません。 提案がありますか?
私はちょっと忙しいので、ちょっと忙しかったので、ちょっと調べてみましたが、プログラムから正しく出力されますが、プログラムが実行されないことがあるため、ややうまく動作します。 –