Bu yüzden, yukarı yönlü işlerin bir noktasının yazılması basittir.
İnit.d komut dosyalarında defalarca tekrarlanan çok sayıda kabuk komut dosyası sihri vardır. Vaka bildirimleri, pidfile izleme, lsb yorum satırları. Bir GOOD init.d betiği bir tane okumadan nasıl yazılacağı çok açık değil.
Bunların hepsini yazma zahmetinden zaten geçtiyseniz, başka bir yorumda bahsettiğim gibi, başka bir uptart işine / etkinliğine bağımlı olmadığınız sürece bir uptart işine ihtiyacınız yoktur.
Ama gerçekten, upstart işleri gerçekten basitleştirir. Tmpdirs, ulimits veya çalışma zamanı argümanları gibi şeyler ayarlamanız gerekmedikçe, bir ön başlatma yapmanız gerekmez. Bir hizmetten sonra toparlanmadığınızdan emin olmak istemiyorsanız, bir post-stop'a ihtiyacınız olmamalıdır (servis normal çıkışta gerçekten temizleniyor olmalıdır).
Genellikle birçok seçenek içeren dev bir init.d betiği 10-15 satırlık bir başlangıç işine kadar kaybolur. En karmaşık init.d komut dosyaları mantıklarının çoğunu başlatma öncesi programlara dökebilir. Anahtar orada onun işlem için ortam kurmak için sadece küçük bir kod snippet, ve start / stop / respawn / vb işleme mantık değil.
En zor kısmı ve insanların en sık yanlış yaptığı kısım, işlerine ne zaman başlayacaklarını / durduracaklarını bilmek. start on runlevel [2345]
mantıklı görünüyor, ancak yerel dosya sistemi bağları gibi ağın bu noktada paralel olarak geldiği gerçeğini göz ardı ediyor. Anahtar, çalıştırmak için tam olarak ihtiyacınız olan minimum şeyleri (diğer hizmetler, dosya sistemleri, ağ vb.) Bulmaya çalışmaktır ve bunlar bittiğinde başlamaktır. Geleneksel ağ hizmetlerinin çoğu bunu yapmalıdır start on (local-filesystems and net-device-up IFACE!=lo)
.