|
过去一直没注意过,最近两天用tcl,Expect写了个脚本自动连接 重连 ssh tunnel (ssh -D),然后做成service ,开机自动启动.
由于service的stop()函数需要.pid文件里面的pid(s)来kill以停止服务,这个脚本本来预计应该有两个进程,一个是expect ,一个是ssh,把这2个进程pid加入.pid就可以正确停止service,但情况并不是这样,实际上有3个进程:
1.expect进程
2.带正常指定的参数的ssh进程
3.不带任何参数的ssh进程
而spawn返回的pid是第三个进程的pid,而不是第二个进程的pid.kill第三个进程不会对已建立的tunnel产生任何影响
这是spawn产生的问题还是ssh -D本身就产生2个进程?:help:help:help |
|