项目中一直用的ssh,但是ssh连接不稳定,于是准备使用autossh;于是开始学习autossh。网上搜相关资料,才发现除了最基本的用法格式:autossh –M 5555 -CNR10001:127.0.0.1:22 root@host -4外,任何详细说明都没有,重连时间、重连机制都没有。因此不得不自己学习源码;
源码下载路径:
http://www.harding.motd.ca/autossh/autossh-1.4e.tgz
自己梳理的软件流程图如下:
上图中主要描述了平时使用时,经常出现的分支;其中,很多异常分支没有在流程图中体现;
如上图可见几个循环:
1)9开始的大循环;每次ssh子进程结束时,进入此大循环,重新执行创建子进程和监视流程;若周期性的监视流程中,socket读写数据出错,且连续三次均出错则也回到此循环;
2)1