Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When I start my xsession I setup my SSH tunnel to my VPS.

Here is the script the runs on login:

matt@HY731AA:~$ more dotfiles/startssh.sh 
#!/bin/sh

ssh-add ~/.ssh/id_rsa
screen -dmS ssh /bin/bash -c ~/dotfiles/keeptunnel.bash
exit

Prompt to enter key and voila terminal closes..

And here is keeptunnel.bash

matt@HY731AA:~$ more dotfiles/keeptunnel.bash 
#!/bin/bash

while [ true ]; 
  do    /usr/bin/ssh lin1tunnels > /home/matt/lin1tunnel.log 2>&1 
  sleep 0.4   
  done;

On login it seems everything works, tunnel is setup, however I leave my computer on 24/7 through various suspend/unsuspends etc.. The problem is occasionally the SSH tunnel is down, so I figure its just reconnecting or internet/server is down, however doing a screen -list shows the screened session is (Dead???) and to screen -wipe.

What I cant understand is given the loop in keeptunnels there is no way ppossible that screen should be able to exit? I have ConnectTimeout 8 and ServerAliveInterval 5 in .ssh/config for lin1tunnels however that I doubt is the source of the problem as the screened session is dead.

Ideas of why the screened session is dying?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

A "dead" screen session usually means that the screen server process has crashed. Do dmesg or /var/log/syslog report any segfaults or out-of-memory errors?

You could replace screen with tmux or dtach, or even remove screen entirely by just using ~/dotfiles/keeptunnel.bash & in your startssh.sh script.


...in fact both scripts can be combined:

#!/bin/sh
ssh-add ~/.ssh/id_rsa
while true; do
    ssh -v -N lin1tunnels
    sleep 0.4
done > ~/lin1tunnel.log 2>&1 &
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.