Soru Sıfırla / Ingnore sıfır olmayan çıkış kodu filo / systemd ile


Benim bir backup.service her saat bir backup.timer. Maalesef konteynerin içinde çalışan yedek komut dosyası tamamlanabilir başarılı ama uyarılar sıfır olmayan bir çıkış kodu döndürme. Her ne kadar her şey işe yaramış olsa da, konteyner sıfır olmayan bir çıkış kodu ile durur. Yani birim girer başarısız oldu filoda devlet.

Ve bu durumda, öyle görünüyor ki, zamanlayıcı bu birimi tekrar başlatmayacak, sistemd dokümanlarında hiçbir şey bulamadığım halde, bunu söyleyemedim.

Netleştirmek için: Kapsayıcıyı sıfır olmayan bir çıkış koduyla durdurmak için benim için gayet iyi. Ama zamanlayıcım o zaman çalışmıyor.

Şimdi bu betiği başka bir alana aktarabilirim, bu da als docker giriş noktası olarak adlandırılır. Fakat STDOUT ve STDERR'nin çıkışının bir şekilde saklandığından emin olmalıyım.

Ben de koşabilirim sudo systemctl sıfırlama başarısız ünite başarısız olduktan sonra, ama bu benim için biraz rahatsız gibi görünüyor ... (Ben denedim ve bu durumda zamanlayıcı üniteyi tekrar koştu. Ama hizmet dosyasında ExecStopPost-Görev olarak çalışmıyor)

Bir birim olduğundan emin olmanın daha iyi bir yolu var mı

  • sıfırdan dönmesine rağmen başarısız durum girmez veya
  • durumu daha sonra sıfırlamak veya
  • zamanlayıcıya, ünitesini statüsünden çok daha önce çalıştırmasını söyleyin başarısız oldu?

6
2018-04-02 10:08


Menşei




Cevaplar:


Komutunu ön ekleyebilirsin. -Ardından, systemd arızayı yoksayar ve üniteyi başarısız duruma sokmaz. Yani, yerine

ExecStart=/path/to/your/command 

Deneyin

ExecStart=-/path/to/your/command 

Görmek systemd daha fazlası için man sayfa.


4
2018-04-02 12:33



İnan ya da inanma. Tam olarak 15 servis dosyam var. - benim .. De ExecPre-Görevler. Bunu çözüm olarak anlamamıştım ... Günümü sen yaptın. Teşekkürler - Julian Kaffke


Görmezden gelmek istersen bazı değerleri döndür, ama yine de biraz diğerleri hataları sistemd olarak saymak için bunları [Service] .service dosyanızın bölümüne boşlukla ayrılmış bir liste olarak SuccessExitStatus, RestartPreventExitStatus, ve RestartForceExitStatus. Bunlar aynı zamanda sinyal isimlerini de alır.

Referans: adam 5 systemd.service


1
2018-01-06 20:52