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]もちろん私のユーザー名に交換されました。

おすすめ記事