我正在使用以下代码来读/写到stdin / stdout:
def _receive_message(self):
msg = ''
stdin_fd = sys.stdin.fileno()
old = tty.tcgetattr(stdin_fd)
tty.setcbreak(stdin_fd)
while True:
msg = msg + sys.stdin.read(1)
if msg.endswith("]]>]]>"):
return msg[:-6]
sys.stdout.flush()
tty.tcsetattr(stdin_fd, tty.TCSAFLUSH, old)
def send_message(self, msg):
print(msg)
在2种模式下:
都开始运行相同的python代码。 第一种方法可以正常工作 我收到第二个 由于异常而关闭连接(25,“设备的不适当的ioctl”) 在我阅读该错误时,是因为代码未在终端环境中运行,因此缺少终端设置。 如何使它们以相同的方式运行?
编辑: ssh连接与open ssh相连, sshd_config通过以下方式处理netconf子系统: 子系统netconf / bin / bash /home/user/.netconf_login .netconf_login与/home/user/.bash_login相同:
#!/bin/bash
PORT="${SSH_CLIENT##* }"
source /home/scripts/common_env_variables.sh
if [ "$PORT" -eq 830 ]; then
sudo MIBDIRS=$MIBDIRS USER=$USER ROLE=$ROLE /usr/bin/python3.6 /home/user/netconf_server.py
fi
exit