Autosshの起動に失敗しました

Autosshの起動に失敗しました

systemdを使用して自宅のサーバーのリバーストンネルを自動的に設定するようにautosshを取得しようとしています。 /etc/systemd/systemにautossh.serviceという単位を設定しました。

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

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

After=network-online.target

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

この問題をどのように解決できますか?

答え1

それは次のとおりです。

Restart=always
RestartSec=120

おそらく...

または以下を参照してください。StartLimitInterval 以降、Systemd サービスが自動的に再起動されます。

答え2

a)StartLimitIntervalSec=12の先頭に[Unit]を追加してみてくださいautossh.service

b) Type=simple[サービス]セクション。

c) デーモンを再ロードしますsudo systemctl daemon-reload

d) 再度有効にしますsudo systemctl enable autossh

e) 始めますsudo systemctl start autossh

f) 再起動

成功しましたか?

答え3

また、以下を追加する必要があります。

Wants=network-online.target

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

答え4

ユニットファイルを待つのが良い目標のように聞こえませんか?

nss-find.target

すべてのホスト/ネットワークネームサービス検索の同期ポイントのターゲットとして使用する必要があります。これは、nss-user-lookup.targetを使用する必要があるUNIXユーザー/グループ名の検索とは関係ありません。完全なホスト/ネットワーク名解決を必要とするすべてのサービスは、このターゲットの後に注文する必要がありますが、ドラッグしてはいけません。 systemdは、「$ named」機能を参照するLSBを持つすべてのSysV initスクリプトサービスユニットヘッダに、このターゲットユニットのAfter =型の依存関係を自動的に追加します。

引用する

関連情報