我正在尝试在脚本中运行一组命令。确切地说,这些行是
rm tmp_pipe
mkfifo tmp_pipe
python listen_pipe.py &
while [ true ]; do nc -l -w30 7036 >>tmp_pipe; done &
listen_pipe.py只是
if __name__ == "__main__":
f = open("tmp_pipe")
vals = " "
while "END" not in vals:
vals = f.readline()
if len(vals) > 0:
print(vals)
else:
f = open("tmp_pipe")
如果按照显示的顺序运行命令,我会获得所需的输出,这是与ESP设备的连接,用于传输运动数据。如果ESP设备离开网络范围或设备已关闭,则连接将在30秒后重置。 python脚本继续从管道读取,并且在重置tcp连接时不会终止。但是,如果我在脚本文件中运行此代码,则nc无法连接,并且设备将无限期地保持在未连接状态。该脚本只是
#!/bin/bash
rm tmp_pipe
mkfifo tmp_pipe
python listen_pipe.py &
while [ true ]; do nc -l -w30 7036 >>tmp_pipe; done &
这是在Ubuntu 16.04上运行的。任何建议都非常受欢迎,我一直在与这个代码作斗争。谢谢,
伊恩