流程结束

时间:2010-07-10 21:37:58

标签: python process handle

我可以使用python子进程中的Popen来关闭启动进程吗?例如,从popen我运行一些应用程序。在我的代码的某些部分,我必须关闭该运行的应用程序。 例如,从Linux中的控制台我做:

./some_bin
... It works and logs stdout here ...
Ctrl + C and it breaks

我需要像Ctrl + C这样的程序代码。

3 个答案:

答案 0 :(得分:2)

使用subprocess模块。

import subprocess

# all arguments must be passed one at a time inside a list
# they must all be string elements
arguments = ["sleep", "3600"] # first argument is the program's name

process = subprocess.Popen(arguments)
# do whatever you want
process.terminate()

答案 1 :(得分:2)

from subprocess import Popen
process = Popen(['slow', 'running', 'program'])
while process.poll():
    if raw_input() == 'Kill':
        if process.poll(): process.kill()

kill()会杀死一个进程。点击此处:Python subprocess module

答案 2 :(得分:0)

前段时间我需要一个温柔的'通过在Windows控制台中发送CTRL + C来关闭进程。

以下是我所拥有的:

import win32api
import win32con
import subprocess
import time
import shlex

cmdline = 'cmd.exe /k "timeout 60"'
args = shlex.split(cmdline)
myprocess = subprocess.Popen(args)
pid = myprocess.pid
print(myprocess, pid)
time.sleep(5)
win32api.GenerateConsoleCtrlEvent(win32con.CTRL_C_EVENT, pid)
# ^^^^^^^^^^^^^^^^^^^^  instead of myprocess.terminate()