我可以使用python子进程中的Popen来关闭启动进程吗?例如,从popen我运行一些应用程序。在我的代码的某些部分,我必须关闭该运行的应用程序。 例如,从Linux中的控制台我做:
./some_bin
... It works and logs stdout here ...
Ctrl + C and it breaks
我需要像Ctrl + C这样的程序代码。
答案 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()