it-swarm-tr.com

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

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

Daha genel olarak, .d soneki bir dizine ne anlam ifade ediyor?

231
Olivier Lalonde

/etc/init.d, System V init araçları (SysVinit) tarafından kullanılan komut dosyalarını içerir. Bu, Linux için geleneksel hizmet yönetimi paketidir; init programını (çekirdeğin başlatılması bittiğinde ilk çalıştırılan işlemdir) ve ayrıca hizmetleri başlatmak ve durdurmak ve yapılandırmak için bir altyapı içerir. Özellikle, /etc/init.d içindeki dosyalar, start, stop, restart ve (desteklendiğinde) reload komutlarına yanıt veren ve belirli bir hizmeti yöneten komutlardır. Bu komut dosyaları doğrudan veya (en yaygın olarak) başka bir tetikleyici (genellikle /etc/rc?.d/ içinde sembolik bir bağın varlığıyla) aracılığıyla çağrılabilir.

/etc/init Upstart tarafından kullanılan konfigürasyon dosyalarını içerir. Upstart, Ubuntu tarafından savunan genç bir servis yönetimi paketidir. /etc/init içindeki dosyalar Upstart'ın nasıl ve ne zaman start, stop, reload yapılandırmalarını ya da bir hizmetin statuslarını sorguladıklarını belirten yapılandırma dosyalarıdır. 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 dizin adlarında tipik olarak belirli bir durum için birçok yapılandırma dosyası veya komut dosyası içeren bir dizini gösterir (örn. /etc/apt/sources.list.d sanal bir yapmak için birleştirilmiş dosyaları içerir sources.list; /etc/network/if-up.d içerir Bir ağ i nter f ace etkinken) çalıştırılan komut dosyaları. 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 önce geldi ve init.d kullandı ve Upstart benzer bir amaç için bir dizinde düz init kullandı. daha “ana” ve daha önce /etc/upstart.d kullanıyorlarsa, daha az kibirliydi).

¹ initrd saymıyor

230
Gilles

".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ü, 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.

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

29
thomasrutter

Belirttiginiz gibi, ".d" isimlendirmesi ş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/init olmasının ve /etc/upstart olmasının nedeni, "Upstart" proje adı olduğundan, asıl kurulu ikilinin hala /sbin/init olmasının nedeni, konfigürasyonunun bir isim vermesinin bir anlamı olmayacağıdır. ikiliyle eşleşmedi.

13
Scott