2016-07-16 8 views
-1

サブプロセスを開始するPythonスクリプトを書いてから、n秒の間隔のあいだこれを終了したい。 time.sleep(n)を使用すると、プロセスは終了しませんが、このスリープパートを削除すると、os.kill(proc.pid、signal.SIGKILL)を使用してkillされます。誰か助けてくれますか?OS XでPythonとの時間間隔の後にサブプロセスを終了

import time,subprocess,os,signal 

    timeLeft = 5 

    while timeLeft > 0: 
     print('Time left is ' + str(timeLeft)) 
     time.sleep(1) 
     timeLeft = timeLeft - 1 
     pass 

    proc = subprocess.Popen(['open','/Users/06 Green Day - Boulevard Of Broken Dreams.mp3']) 

    time.sleep(2) 

    os.kill(proc.pid, signal.SIGKILL) 

私はproc.terminate()でも無駄でした。

答えて

0
import time,subprocess,os,signal 

proc = subprocess.Popen(["notepad.exe","data.out"]) 

timeLeft = 5 

while timeLeft > 0: 
    print('Time left is ' + str(timeLeft)) 
    time.sleep(1) 
    timeLeft = timeLeft - 1 
    pass 

os.kill(proc.pid, signal.SIGTERM) 

このようにコードを並べ替えると、プロセスが開始され、timeleftがカウントダウンされ、プロセスが終了するはずです。私はSIGTERMを使用しなければならなかった。

+0

まずでそれを殺す私が開くようにmp3ファイルでこれをしようとしたとき、それが働いたdidntの。 mp3ファイルはiTunesアプリケーションによってデフォルトで開かれ、終了していないため、mp3は再生を続けました。 第2に、一定時間後に開始して一定時間後に終了するアラームを作成しようとしていたため、サブプロセスを開始する位置は変更されません。 – Prashant

+0

@Prashantは、私の例のようにファイルを手動で選択し、正しくシャットダウンするプログラムを選択します。 – MadisonCooper

1

だけsys.exit(0).

+0

それは私のために働いていませんでした。 – Prashant

関連する問題