为了账号安全,请及时绑定邮箱和手机立即绑定

如何将“QUIT”命令传递给已经运行的 python 子进程

如何将“QUIT”命令传递给已经运行的 python 子进程

茅侃侃 2023-05-09 10:26:13
我正在使用 python 并调用子进程并逐行读取 put 并且它工作正常,如下所示。process = subprocess.Popen(['jdebug', 'File.tgz'],                            stdout=subprocess.PIPE,                           universal_newlines=True)while True:    output = process.stdout.readline()    print(output.strip())    return_code = process.poll()    print( return_code)    if "lastdata" in str(output):         <- How to send 'bt' and 'quit' command at this point and read the response back.      process.communicate('bt')      process.communicate('quit')if return_code is not None:    # Process has finished, read rest of the output        for output in process.stdout.readlines():                print(output.strip())    break当上述条件成立时,我想向“jdebug”进程发出“bt”和“退出”命令以退出进程。由于 jdebug 进程不返回控制权,python 程序需要显式发出“退出”命令以取回控制权。想知道如何做到这一点?我发送这个值:process.stdin.write('bt\n') process.stdin.write('quit\n')
查看完整描述

2 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

# write on the stdin out of your process 
subprocess.stdin.write('QUIT')


查看完整回答
反对 回复 2023-05-09
?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

你可以像这样杀死进程

process.kill()


查看完整回答
反对 回复 2023-05-09
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信