Jadi satu poin dari pekerjaan pemula adalah menjadi sederhana untuk ditulis.
Ada banyak keajaiban skrip shell di skrip init.d yang berulang-ulang. Pernyataan kasus, pelacakan pidfile, baris komentar lsb. Tidak begitu jelas cara menulis skrip init.d BAIK tanpa harus membacanya.
Jika Anda sudah melalui kesulitan menulis semua itu, maka Anda tidak perlu pekerjaan pemula kecuali, seperti yang saya sebutkan di komentar lain, Anda bergantung pada pekerjaan / acara pemula lainnya.
Tapi sungguh, pemula memang membuat segalanya sangat sederhana. Anda seharusnya tidak memerlukan pra-start kecuali Anda perlu mengatur semuanya seperti tmpdirs, ulimits, atau argumen runtime. Anda seharusnya tidak memerlukan post-stop kecuali Anda ingin memastikan Anda merapikan setelah layanan (layanan ini benar-benar harus membersihkan setelah itu sendiri pada keluar normal).
Seringkali skrip init.d raksasa dengan banyak opsi bermuara pada 10 - 15 baris pekerjaan pemula. Skrip init.d paling kompleks dapat membuat sebagian besar logikanya dibuang ke pre-start's. Kuncinya ada adalah hanya potongan kecil kode untuk mengatur lingkungan untuk proses, dan bukan logika penanganan start / stop / respawn / dll.
Bagian tersulit, dan yang paling sering salah dilakukan orang, adalah mengetahui kapan memulai / menghentikan pekerjaan mereka. start on runlevel [2345]
tampaknya logis, tetapi mengabaikan fakta bahwa jaringan akan muncul secara paralel pada saat itu, seperti halnya mount sistem file lokal. Kuncinya adalah untuk mencoba dan mencari tahu persis hal-hal minimum yang Anda butuhkan (layanan lain, sistem file, jaringan, dll) untuk dijalankan, dan mulai ketika itu selesai. Kebanyakan layanan jaringan tradisional harus dilakukan start on (local-filesystems and net-device-up IFACE!=lo)
.