【问题标题】:Python: Kill (terminate) a process from command prompt using PythonPython:使用 Python 从命令提示符处终止(终止)进程
【发布时间】:2013-07-30 19:55:34
【问题描述】:

我对计算机软件术语不是很熟悉(抱歉)。

  • 我在 Python 中设计了一个 GUI,假设按下适当的按钮(在 GUI 上)时执行和/或终止脚本。
  • 当我在 GUI 上按下“开始”按钮 (QPushButton) 时,以下命令会在命令提示符中执行脚本 filename.dut,如下所示:
    subprocess.call('launcher.exe localhost filename.dut',shell=True)。

  • 我希望能够以类似的方式终止脚本,即按下 GUI 上的“停止”按钮,该按钮将在命令提示符中写入适当的命令来终止脚本。 我想我可以在这个线程中找到解决方案:Ending external programs with Python。建议的解决方案是:

    import subprocess        
    taskname = '...'        
    task = 'taskkill /im ' + taskname + ' /f'         
    subprocess.check_call(task, shell=True)
    
  • 我的问题是如何获得taskname?

任何建议或替代解决方案将不胜感激。

【问题讨论】:

  • 我从未使用过subprocess 模块,但如果您能获得进程ID,psutils 看起来可能会有所帮助。

标签: python user-interface abort kill-process taskkill


【解决方案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

【讨论】:

  • 非常感谢!这很有帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-11
相关资源
最近更新 更多