OSError: [Errno 24] when multithreading pwntools
OSError: [Errno 24] when multithreading pwntools
我正在创建一个脚本来启动一些线程,运行 二进制文件的输入。用法是python3 script.py binary input.txt
。这是遇到此错误的可重现片段:
from pwn import *
import threading
inputFile = ""
try:
inputFile = open(sys.argv[2], 'r')
inputStr = inputFile.read().strip()
inputFile.close()
except OSError:
sys.exit()
def run(testStr) :
p = process("./"+sys.argv[1])
p.sendline(testStr)
p.shutdown()
return p.poll(block = True)
def opens() :
while True:
run(inputStr)
for i in range(0,10):
thread = threading.Thread(target = opens)
thread.start()
经过5秒左右的运行时间,我运行进入这个错误,还有错误:out of pty devices
。
我 运行宁 ubuntu 20.04.
原来 pwntools 进程 API 没有关闭 stderr 或 stdout,所以在从 运行 返回之前关闭它们,问题就解决了。
我正在创建一个脚本来启动一些线程,运行 二进制文件的输入。用法是python3 script.py binary input.txt
。这是遇到此错误的可重现片段:
from pwn import *
import threading
inputFile = ""
try:
inputFile = open(sys.argv[2], 'r')
inputStr = inputFile.read().strip()
inputFile.close()
except OSError:
sys.exit()
def run(testStr) :
p = process("./"+sys.argv[1])
p.sendline(testStr)
p.shutdown()
return p.poll(block = True)
def opens() :
while True:
run(inputStr)
for i in range(0,10):
thread = threading.Thread(target = opens)
thread.start()
经过5秒左右的运行时间,我运行进入这个错误,还有错误:out of pty devices
。
我 运行宁 ubuntu 20.04.
原来 pwntools 进程 API 没有关闭 stderr 或 stdout,所以在从 运行 返回之前关闭它们,问题就解决了。