2016-12-27 11 views
0

私はPythonスクリプトからbashスクリプトwhile :; do afplay beep.wav ; doneコマンドを実行しようとしていますが、後でそれを強制終了できます。Python kill bash whileループがサブプロセスから開始しました

私が試した:this answerとして

process = subprocess.Popen("exec while :; do afplay %s ; done" % fileName, shell=True, executable='/bin/bash') 

は示唆してますが、上記は私のために動作しません。 (スクリプトは実行されません)

while :; do afplay beep.wav ; doneをpythonから実行して、起動後どの時点でそれを強制終了できますか?


EDITは:ちょうどexec >(while :; do afplay %s; done)は、スクリプトを起動することに気づいたが、今process.kill()はそれを殺すことはありません。

+2

'exec'は組み込みであるため、' man exec'の代わりに 'help exec'とタイプしてください。それで 'exec'が_commands._を実行することがわかります。少し考えてみると、' exec'非外部コマンド ';)'に意味がありません。あなたは何をしようとしているのですか? –

+0

@gniourf_gniourf私は 'while:;を実行しようとしています。ビープ音を鳴らす.wav; pythonスクリプトからコマンドを実行しましたが、後でそれを強制終了することができます。 [この回答](http://stackoverflow.com/a/13143013/3310334)は、Pythonからbashスクリプトを簡単に削除する方法を示していますが、コピーしようとしましたが動作しませんでした。 – theonlygusti

+0

あなたの疑問にお答えします!あなたは大いにあなたの質問を編集する必要があります! –

答えて

0
os.killpg(os.getpgid(process.pid), signal.SIGINT) 

これはやっているようです。私は唯一のプロセスの代わりにプロセスグループ(os.killpg)を殺しています。

関連する問題