Linux – Using Upstart to Manage AutoSSH Reverse Tunnel on Ubuntu 10.04

initlinuxsshubuntu-10.04upstart

I'm using upstart to manage a reverse SSH tunnel via autossh. When I do a "sudo start tunnel" the connection comes up just fine; however the command is not being automatically run when the networking services are started, and no matter what I change the "start on" property, I don't seem to be able to get this to run in an automated fashion.

However, like I said, I can start/stop it just fine.

Here's my /etc/init/tunnel.conf, with sensitive stuff stripped out:

description "SSH Tunnel"

start on started networking
stop on stopping networking

respawn

env DISPLAY=:0.0

exec autossh -nNT -R 22100:localhost:22 myuser@myserver.com -p 2201

Best Answer

Figured it out, I needed to wait for a specific device, here's my working Upstart job file:

description "SSH Tunnel"

start on (net-device-up IFACE=eth0)
stop on runlevel[016]

respawn

env DISPLAY=:0.0

exec autossh -nNT -o ServerAliveInterval=15 -R 22100:localhost:22 myuser@myserver.com -p 2201