pexpect.spawn 是否需要时间才能返回其调用 Python 脚本?
我正在编写一个脚本来管理一个 Karaf 容器,使用 pexpect 来注入命令。如果 Karaf 没有运行,我注意到isalive()
除非我在脚本中插入暂停,否则我不能总是可靠地使用。
例如:-
# open a Karaf SSH session
karaf_session = pexpect.spawn("ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p " +
karaf_port + " " +
karaf_id + "@" +
karaf_host)
log_file = open(log_file_name, "wb")
karaf_session.logfile_read = log_file
time.sleep(1)
if karaf_session.isalive():
print("Connected to Karaf")
else:
print("Failed to connect to Karaf")
如果我注释掉time.sleep(1)
然后isalive()
返回 true,即使 Karaf 没有运行。
根据logfile_read
是在睡眠之前还是之后,它要么什么都没有捕获,要么捕获以下内容:-
ssh: connect to host localhost port 8101: Connection refused
我宁愿拥有比任意睡眠更可靠的东西!