autossh 不会在后台运行

autossh 不会在后台运行

我尝试将 autossh 设置为在启动时运行,将其添加到 /etc/rc.local 但我什至无法让它在后台运行。

这是我的配置文件的关键部分:

Host remotehost.com
  LocalForward 127.0.0.1:8082 127.0.0.1:8082
  LocalForward 127.0.0.1:8000 127.0.0.1:80
  LocalForward 127.0.0.1:10001 127.0.0.1:10001
  LocalForward 127.0.0.1:12001 127.0.0.1:12001
  Port 9922

该命令的工作原理:

autossh -F /home/[username]/.ssh/config -i /home/[username]/.ssh/id_rsa remotehost.com

但是,如果我添加 -f 选项

autossh -f -F /home/[username]/.ssh/config -i /home/[username]/.ssh/id_rsa remotehost.com

不会的。

正如你所看到的,我只使用绝对路径,所以它不应该这个问题

这就是我的日志所说的:

2014/04/22 12:09:07 autossh[4367]: checking for grace period, tries = 0
2014/04/22 12:09:07 autossh[4367]: starting ssh (count 1)
2014/04/22 12:09:07 autossh[4367]: ssh child pid is 4368
2014/04/22 12:09:07 autossh[4367]: check on child 4368
2014/04/22 12:09:07 autossh[4367]: set alarm for 600 secs
2014/04/22 12:09:07 autossh[4368]: execing /usr/bin/ssh
2014/04/22 12:09:07 autossh[4367]: check on child 4368
2014/04/22 12:09:07 autossh[4367]: ssh exited with status 0; autossh exiting
2014/04/22 12:09:07 autossh[4367]: expired child, returning 2

答案1

哦。愚蠢的我。尽管我错过了,但手册中对此进行了介绍。我应该添加-N- 开关。这是我在 rc.local 中放入的内容并且有效:

su [username] -c 'autossh -f -N -F /home/[username]/.ssh/config_tunnels -i /home/[username]/.ssh/id_rsa remotehost.com

[username]当然是与我的用户名交换的。

相关内容