2010年11月24日星期三

SSH Tunnel不能自动启动

我在GNOME的Startup Application里面添加了一个启动SSH隧道的脚本,内容只有一行建立隧道的SSH命令。以前都可以自动启动,最近两台电脑上都不能自动启动了,进去桌面后没有隧道,要手动执行一遍才可以。

我在启动脚本里面添加了一行zenity --calendar,这样可以弹出一个日历对话框。注销后再进入桌面,日历能出来,说明脚本被执行了,但是隧道没有建立。试了试在SSH命令前面加一行sleep 5,让等5秒再执行脚本。注销再进入,脚本就可以自动启动了。

猜测原因是这样的。脚本立刻启动的话,NetworkMananger还没有把网络设置好,导致隧道无法成功建立。而等上几秒再建立隧道,此时网络已经连好(由路由器分配静态IP地址),隧道也可以建立了。NetworkManager确实是GNOME的启动脚本,也在Startup Application里面。如果注销了桌面,网络也就断了。

没有评论:

发表评论