2013-07-30 43 views
1

我對計算機軟件術語不是很熟悉(我的歉意)。Python:使用Python從命令提示符中終止(終止)進程

  • 我設計了一個Python中的GUI,當按下一個合適的按鈕(在GUI上)時,它假設執行和/或終止腳本。
  • 當我按下GUI上的「開始」按鈕(QPushButton),下面的命令執行腳本filename.dut在命令提示如下:
    subprocess.call('LAUNCHER.EXE本地主機名。 dut',shell = True)。

  • 我希望能夠以類似的方式終止腳本,即按下GUI上的「停止」按鈕,將寫入命令提示符的合適命令終止腳本。 我想我可以在此主題中找到解決方案:Ending external programs with Python。建議的解決方案是:

    import subprocess   
    taskname = '...'   
    task = 'taskkill /im ' + taskname + ' /f'   
    subprocess.check_call(task, shell=True) 
    
  • 我quastion是我怎麼能獲得TASKNAME

任何建議或替代解決方案將不勝感激。

+0

我從來沒有使用'subprocess'模塊,但如果你能得到的進程ID,[PSUtils裏(https://code.google.com/p/psutil /)看起來可能有所幫助。 – verbsintransit

回答

1

如果您使用subprocess,則無需調用任何外部實用程序。 subprocess.Popen類提供terminate方法。

爲了使用它,您需要將subprocess.call(...)替換爲subprocess.Popen(...),它將返回Popen實例。例如,

task = subprocess.Popen('launcher.exe localhost filename.dut', shell=True) 
# some time later 
task.terminate() 

需要注意的是,不像call,平原Popen不會等待過程來完成。

諮詢更多詳細信息,手冊:http://docs.python.org/2/library/subprocess.html

+0

非常感謝!這很有幫助。 – user2626674