我想我有几个涉及多个问题的问题。首先,代码:
import subprocess
username = input ("Enter username: ")
subprocess.call(["python3", "sherlock", username])
Popen.terminate()
我正在使用 subprocess
使用 python3 运行 sherlock
程序。问题是,无论出于何种原因,sherlock
程序在完成后都不会退出。我不确定这是 sherlock
的问题还是我这边的问题。说实话,我不在乎,只是想在给它50秒跑动时间后在我这边杀掉它,因为这就是跑动的时间。
我做了一些阅读,据我所知,我应该使用 Popen.terminate()
来杀死它?我知道该命令需要更多运行,我需要告诉它要杀死什么...这就是我陷入困境的地方。我不知道如何确定正在运行的进程,然后杀死它。我的程序 95% 是在 sherlock 运行之后发生的,所以它并没有走得太远,所以我需要杀死它并让我的程序继续运行。
不知道如何从这里继续...
更新:好的,所以我确定程序会自行完成,而不必杀死它,但问题是一旦程序完成,python 脚本就不会继续。它只是坐在那里什么也不做。有没有办法强制它移动到脚本的下一行?
最佳答案
尝试这样的事情:
import subprocess
username = input ("Enter username: ")
try:
ret = subprocess.call(["python3", "sherlock", username], timeout=50)
except subprocess.TimeoutExpired:
# TODO: manage exception
pass
关于python - 如何在 50 秒后杀死子进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62379807/