/ Etc / init / ve /etc/init.d/ arasındaki fark nedir?


Yanıtlar:


229

/etc/init.dSystem V init araçları (SysVinit) tarafından kullanılan komut dosyalarını içerir. Bu, Linux için geleneksel bir servis yönetim paketidir ve initprogramı (çekirdeğin başlatılması bittiğinde çalıştırılan ilk işlem) ve hizmetleri başlatmak ve durdurmak ve yapılandırmak için bir altyapı içerir. Özellikle, dosyalar /etc/init.dyanıt kabuk komut dosyaları start, stop, restart(destekleniyorsa) ve reloadbelirli bir hizmet yönetmek için komutlar. Bu komut dosyaları doğrudan veya (en yaygın olarak) başka bir tetikleyici (tipik olarak sembolik bir bağlantının varlığı) aracılığıyla çağrılabilir /etc/rc?.d/.

/etc/initUpstart tarafından kullanılan yapılandırma dosyalarını içerir. Upstart, Ubuntu tarafından savunan genç bir servis yönetimi paketidir. Dosyalar /etc/initnasıl ve ne zaman için kimsesiz anlatan yapılandırma dosyalarıdır start, stop, reloadyapılandırma ya sorgulamak statusbir hizmetin. Net olarak, Ubuntu, SysVinit'ten Upstart'a geçiş yapıyor, bu da birçok hizmetin neden Upstart konfigürasyon dosyaları tercih edilse de SysVinit scriptleri ile geldiğini açıklıyor. Aslında, SysVinit scriptleri Upstart'taki bir uyumluluk katmanı tarafından işlenir.

.d(örneğin dizin isimlerinde genellikle belirli bir durum için birçok konfigürasyon dosyalarını veya komut dosyalarını içeren bir dizin belirten /etc/apt/sources.list.dbir sanal yapmak için birleştirilmiş dosyaları içeren sources.list; /etc/network/if-up.dbir ağ zaman çalıştırılan komut dosyaları içerir i NTER f ace devreye girer). Bu yapı genellikle, dizindeki her giriş farklı bir kaynak tarafından sağlandığında kullanılır, böylece her paket kendi başvurusunu tek bir yapılandırma dosyasını ayrıştırmak zorunda kalmadan kendi eklentisini depolayabilir. Bu durumda, sadece "init" dizini için mantıklı bir isim olur, SysVinit ilk geldi ve kullanılmış init.dve Upstart düz kullanılaninitBenzer bir amaç için bir dizin için (daha çok "ana" ve /etc/upstart.dbunun yerine kullanılmış olsaydı daha az kibirli olurdu ).

İn initrd saymıyor


28
ezoterik tarihsel not: .dDizinler, V Sistemine girmiştir. O zamanlar şaşırtıcı bir notasyondu ve nihayetinde muhtemelen bir kişinin kod tabanına giren ve gidemediği fikri. Örneğin, catgerçekleştirdiği görev için bunun kötü bir ad olduğunu düşünüyorsanız , sistemde kaç tane dosyayı değiştirmek için dokunmanız gerektiğini düşünün.
msn

Her ikisinde de bulunan sistemlerde, hangisi Upstart ve SysVinit kullanılıyor? Kontrol etmenin bir yolu var mı?
asheeshr

3
@AsheeshR upstartveya adlı bir paket olup olmadığını kontrol edin sysvinit. Ve son sürümlerde de olabilir systemd(cevabımı yazdığımda Ubuntu için geri gelmedi). Hangi paketin sağladığı /sbin/init( dpkg -S /sbin/init).
Gilles

Kullandığım AWS Ubuntu örneğinde (Bitnami'den), upstart/ sbin / init (koştu dpkg -S /sbin/init) sağlayan paket . Ancak Bitnami, komut dosyasını /etc/init.d dizinine yerleştirmiştir. Bu @AsheeshR için verdiğiniz cevap ile çelişkili değil mi? Teşekkür ederim.
Sabuncu

@Sabuncu “SysVinit scriptleri Upstart'ta bir uyumluluk katmanı tarafından işlenir” örneğidir.
Gilles,

29

".D" genellikle, eskiden tek bir komut dosyası veya tek bir yapılandırma dosyası tarafından işlenenin ne olduğunu (veya ne olabileceğini) bir kolaylık sağlamak için birden fazla dosyaya bölündüğünü, ancak hangi birlikte dahil edilmeli veya uygulanmalıdır.

Örneğin, /etc/apache/conf.d/veya/etc/apt/sources.d/

Hangi sıraya dahil edilmeleri / yürütülmesi gerektiğinin önemli olduğu durumlarda, bu dizinlerdeki dosyalar bazen doğru sırayla çalışması için "00 varsayılan" veya "80 kullanıcı" gibi bir sayı ile başlar.

Bu durumda, /etc/init.d/"init.d" deki scriptlerin hepsinin çalıştırılması gerektiğini gösterir. Ancak günümüzde, modern işletim sistemlerinin init sistemi bundan biraz daha fazla, ancak dizin adı hala orada.


Belki de .dnormalde açılışta başlatılan bir 'deamon' süreci ile ilgili demektir.

21
.d kesinlikle dizin içindir, arka plan için değil.
Martin

13

Sizin de belirttiğiniz gibi, ".d" terminolojisi şaşırtıcı ve gariptir ve herhangi bir modern sistemde herhangi bir yeri yoktur - çoğu modern hizmetin onu bırakma eğiliminde olduğunu fark edeceksiniz.

Dizinin /etc/initolmamasının /etc/upstartsebebi, Upstart'ın proje adı olması, asıl kurulu olan ikilik hala, /sbin/initbu nedenle konfigürasyonunun ikili ile uyuşmayan bir isme sahip olması mantıklı olmaz.


7
Bu yanlış, bakınız örneğin udev rules.d, Xorg'un nispeten yeni xorg.conf.d, çok eski değil /etc/profile.dvb ..
Ruslan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.