如果网络接口开关终止进程并重新启动

时间:2014-09-29 04:02:33

标签: ios bash shell networking ssh

我会尝试尽可能地解释这个问题。我一直在开发一个iPhone项目,利用autossh在启动时转发端口并维护它。问题是当启用/禁用移动/ wifi连接时,autossh不会切换到活动接口。

实施例: 我启动了具有3G数据连接的autossh然后打开wifi,但autossh继续使用3G数据连接。然后我关闭3G并且bam autossh甚至在重新打开3G之后也无法连接...同样适用于wifi ...启用wifi启用并连接启动,然后打开3G并禁用/丢失wifi连接autossh将无法再次连接。

所以我基本上需要做的是每当接口切换时重启autossh,但每次切换只有一次,如果这是有道理的,那么它不会一遍又一遍地杀死。

我想出了一行代码但是还不够好

  if [[ $(ifconfig pdp_ip0 |grep inet) && ! $(ifconfig en0 |grep inet) ]]; then
  echo true
  else
  echo false 

  if [[ ! $(ifconfig pdp_ip0 |grep inet) && $(ifconfig en0 | grep inet ]]; then  
  echo true
  else 
  echo false

一个循环可能会这样做但是每个真实条件需要杀死一次&需要等到它的假,然后再次真实。上帝这很难解释。

0 个答案:

没有答案