Systemd tidak me-restart layanan, meskipun Restart = selalu

10

Ini adalah file unit saya dari layanan systemd:

[Unit]
Description=Tunnel For %i
After=network.target

[Service]
User=autossh
ExecStart=/usr/bin/autossh -M 0 -N -o "ExitOnForwardFailure yes" -o "ConnectTimeout=1" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 40443:installserver:40443 -R 8080:installserver:8080 tunnel@%i
Restart=always

[Install]
WantedBy=multi-user.target

Unit gagal 15 hari yang lalu dan systemd tidak memulai ulang, meskipun "Restart = always" ada di file unit di atas.

Di sini keluaran status dari layanan ini:

salt:/srv # systemctl status autossh@eins-work
[email protected] - Tunnel For eins-work
      Loaded: loaded (/etc/systemd/system/[email protected]; enabled)
      Active: failed (Result: start-limit) since Wed, 2016-02-10 14:33:34 CET; 2 weeks and 1 days ago
    Main PID: 17980 (code=exited, status=0/SUCCESS)
      CGroup: name=systemd:/system/[email protected]/eins-work

Feb 10 14:33:34 salt systemd[1]: Stopping Tunnel For eins-work...
Feb 10 14:33:34 salt systemd[1]: Starting Tunnel For eins-work...
Feb 10 14:33:34 salt systemd[1]: Failed to start Tunnel For eins-work.
Feb 10 14:33:34 salt systemd[1]: Unit [email protected] entered failed state

Terkait: https://serverfault.com/a/563401/90324

Bagaimana mengkonfigurasi layanan systemd untuk selalu memulai kembali jika ada yang gagal?

guettli
sumber
Bisakah Anda memulainya secara manual setelah gagal?
Thang Pham

Jawaban:

4

Layanan gagal memulai berkali-kali berturut-turut, dan karenanya systemd menyerah mencoba. Inilah Result: start-limitartinya.

Perhatikan bahwa unit yang dikonfigurasikan untuk Restart=dan yang mencapai batas awal tidak dicoba untuk dihidupkan ulang lagi; Namun, mereka mungkin masih direstart secara manual di titik kemudian, dari titik mana, logika restart diaktifkan kembali. Catatan yang systemctl reset-failedakan menyebabkan penghitung tingkat mulai ulang untuk layanan memerah, yang berguna jika administrator ingin memulai unit secara manual dan batas mulai mengganggu itu.

Anda harus menyelesaikan masalah yang menyebabkan layanan gagal untuk memulai.

Jika Anda perlu menyetel berapa kali dan seberapa cepat systemd upaya untuk memulai kembali layanan gagal, lihat yang StartLimitInterval=, StartLimitBurst=dan StartLimitAction=pilihan .

Michael Hampton
sumber