Namun, saya tidak terbiasa dengan fasilitas ini, jika itu adalah tugas saya untuk menyelesaikan masalah ini, dan pembacaan halaman manual yang sangat singkat tidak menawarkan tombol sederhana untuk menyesuaikan perilaku ini, saya akan melakukan hal berikut:
Baik memperpanjang skrip mulai layanan yang ada, atau jika rumit, masukkan skrip awal baru ke dalam rantai (yang pada gilirannya memulai skrip awal yang asli). Alih-alih memulai layanan segera, skrip start yang baru harus memeriksa apakah permulaan terakhir terjadi cukup baru. Ini dapat dilakukan dengan memeriksa file signaling yang dibuat oleh awal sebelumnya. Jika file tidak ada, skrip dapat melanjutkan dan menyentuh file dan memulai layanan. Jika file tersebut ada, skrip harus memeriksa apakah file tersebut cukup lama. Jika belum cukup umur, ia harus menunggu (tidur) dalam satu lingkaran sampai file menjadi cukup tua.
Sesuatu seperti ini mungkin bekerja (tunggu setidaknya 1 menit antara restart):
#!/bin/bash
SIGNALDIR=/tmp
SIGNALFILE=service.started
while /bin/true; do
found=`find "${SIGNALDIR}" -maxdepth 1 -name "${SIGNALFILE}" -mmin -1 | wc -l`
[ "${found}" -eq 0 ] && break
echo "Waiting"
sleep 10
done
touch "${SIGNALDIR}/${SIGNALFILE}"
original service start...