【发布时间】:2020-10-04 08:50:24
【问题描述】:
我想我有几个问题涉及多个问题。所以首先,代码:
import subprocess
username = input ("Enter username: ")
subprocess.call(["python3", "sherlock", username])
Popen.terminate()
我正在使用subprocess 使用python3 运行sherlock 程序。问题是,无论出于何种原因,sherlock 程序在完成后都不会退出。我不确定这是sherlock 的问题,还是我这边的问题。老实说,我不在乎,只是想在它运行 50 秒后将其杀死,因为这就是运行所需的时间。
我做了一些阅读,据我所知,我应该使用Popen.terminate() 来杀死它?我知道命令需要更多运行,我需要告诉它要杀死什么......这就是我卡住的地方。我不确定如何确定正在运行的进程,然后将其杀死。我的程序 95% 发生在 sherlock 运行之后,所以它并没有走得很远,所以我需要杀死它,让我的程序继续运行。
不知道如何从这里开始......
更新:好的,所以我确定程序自行完成,而不必杀死它,但问题是一旦程序完成,python 脚本就不会继续。它只是坐在那里无所事事。有没有办法强制它移动到脚本的下一行?
【问题讨论】:
-
terminate()是调用类创建的subprocess.Popen实例(子进程)的方法。不过,我建议使用Popen.wait()方法并将timeout参数设置为 50 秒。 -
我不知道
sherlock程序。它是将密码作为命令行参数还是在标准输入上等待它?
标签: python python-3.x linux subprocess popen