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


env DISPLAY=:0.0

exec autossh -nNT -R 22100:localhost:22 myuser@myserver.com -p 2201
  • I guess I don't need the env property, either, that was just left over from the job I copied and modified. Jan 19, 2011 at 23:31

1 Answer 1


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]


env DISPLAY=:0.0

exec autossh -nNT -o ServerAliveInterval=15 -R 22100:localhost:22 myuser@myserver.com -p 2201
  • For multiple interfaces: start on (net-device-up IFACE=eth0 or net-device-up IFACE=wlan0).
    – kontextify
    Jul 9, 2018 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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