web-dev-qa-db-ja.com

Autosshが起動時に失敗する

Autodshにsystemdを使用して自宅にあるサーバーへの逆方向トンネルを自動的に設定させようとしています。/etc/systemd/systemにautossh.serviceというユニットを設定しました

インターネットに接続した後でサービスを開始すると、すべて正常に動作します。ただし、起動時はそうではありません。インターネットに接続されていないため、「ホスト名を解決できませんでした」と表示されません。

/etc/systemd/system/autossh.serviceに次の行があります

After=network-online.target

これは理論的にはこの問題を処理するはずですが、そうではありません。コマンドは起動時に失敗し(まだオンラインではないため、ホスト名を解決できなかったと表示されます)、再試行しません。

どうすればこれを解決できますか?

5
marlasca23

何かのようなもの:

Restart=always
RestartSec=120

多分...

または、以下を参照してください StartLimitInterval後のsystemdサービスの自動再起動

3
F. Hauri

a)StartLimitIntervalSec=12の最初に[ユニット]にautossh.serviceを追加してみてください。

b)そして、[Service]部分のType=simple

c)デーモンSudo systemctl daemon-reloadをリロードします。

d)Sudo systemctl enable autosshを再度有効にします。

e)Sudo systemctl start autosshを起動します。

f)再起動

うまくいきましたか?

3
Vasconcelos1914

以下も追加する必要があります。

Wants=network-online.target

これにより、サービスが開始される前に、構成されたすべてのネットワークデバイスが起動し、IPアドレスが割り当てられます。

2
Nikolay Kirov

Cronieがインストールされている場合はcrontabを使用してください。cronieが後で実行され、ホスト名が検出されます。

次の方法でクロニーを編集します。

crontab -e 

..エディターに以下のコマンドを追加し、PCを再起動して楽しんでください!

@reboot autossh ..... OR /path/to/some/script
0
wuseman

これはあなたのユニットファイルを待つより良いターゲットのように聞こえませんか?

nss-lookup.target

すべてのホスト/ネットワークネームサービスルックアップの同期ポイントとして使用する必要があるターゲット。これは、nss-user-lookup.targetを使用する必要があるUNIXユーザー/グループ名のルックアップとは無関係であることに注意してください。完全なホスト/ネットワーク名前解決の可用性が不可欠であるすべてのサービスは、このターゲットの後に注文する必要がありますが、それを引き込まないでください。systemdは、このターゲットユニットのタイプAfter =の依存関係を、LSBを持つすべてのSysV initスクリプトサービスユニットに自動的に追加します。 「$ named」機能を参照するヘッダー。

参照

0
azzid