关于Linux系统下终端“死机”问题的一般规避方法
问题描述:
目前金融行业正在大规模进行前置机操作系统的切换,包括工行、建行及农行,即由以前的Unix平台切换到Linux平台。近来部分省市工行反馈网点不定期出现终端刷卡或打印“死机”问题,且出现“死机”的终端不固定,通过杀进程不能使终端恢复,只能通过重启前置机解决。
原因分析:
Linux对于软流控的处理存在一个问题:Linux缺省是启用软流控的,当数据中含有0x13字符(CTRL+S,启用流控)的时候,会导致tty设备堵塞,大部分情况下可以通过发送0x11字符(在终端上键入CTRL+Q,解除流控)来解决,但一些情况下发送0x11字符也不能解决问题,使用strace跟踪应用进程发现其停在write函数处,说明tty设备流控住了,堵塞在写操作上。此时ttyd程序能从socket接收数据并发送到pty设备,但是在前置机上echo字符不下去。
规避措施:
针对上述问题,如要根本解决,则需要修改Linux内核参数,设置终端属性为无流控,但比较麻烦。我们提供一个简单的规避方案:
a、对于8芯线(路由器异步口连接终端电缆为8芯线)的情况,可以通过配置auto-close 5的方法,当出现终端死机的情况,开关一次终端来复位终端。
b、对于3芯线(路由器异步口连接终端电缆为3芯线)的情况,可以通过配置resetkey的方法,当出现终端死机的情况,输入resetkey来复位终端。
该方案的具体要求及实现细节请参考附件。
若您有关于案例的建议,请反馈:
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作