Saya telah membaca manual layanan systemd beberapa kali, tetapi saya masih tidak dapat menemukan pola dasar systemd:
Saya ingin menjalankan proses startup sekali (seperti wadah buruh pelabuhan, atau memformat drive) saat boot, berhasil selesai. Tetapi jika saya menggunakan Type = oneshot untuk itu, maka saya tidak bisa menggunakan Restart = on-failure, dan jika gagal, maka tidak akan mencoba lagi pekerjaan itu. Apakah saya melewatkan sesuatu yang jelas di sini?
Saya juga mencoba mengatur Type = simple dengan Restart = on-failure, tetapi dalam banyak kasus ini saya memerlukan perilaku berikut (dari halaman manual) yang diberikan oleh layanan oneshot:
Perilaku oneshot mirip dengan yang sederhana; namun, diharapkan proses tersebut harus keluar sebelum systemd memulai unit tindak lanjut.
Pembaruan:
Restart=dengan mengatur FailureAction=[self.unit](ganti [self.unit] dengan nama unit). Agak kasar, tapi setidaknya eksplisit dan cukup mudah untuk diikuti.
FailureActionmengambil nilai yang sama dengan StartLimitAction, dan semua kecuali nonememicu semacam shutdown.
Restartdan membungkusmy_cmdseperti iniExecStart=/bin/sh -c 'while ! my_cmd; do sleep 1; done':, bersama dengan beberapaTimeoutStartSecnilai yang masuk akal .