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

216

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

Daha genel olarak, .d soneki bir dizine hangi anlam taşır?

    
sordu Olivier Lalonde 02.10.2010 00:59

3 cevap

217

/etc/init.d , System V başlangıç ​​araçları (SysVinit) tarafından kullanılan komut dosyaları içerir. Bu, Linux için init programını (çekirdeğin ilklendirilmesi bittiğinde çalıştırılan ilk işlem) ve ayrıca hizmetleri başlatmak ve durdurmak ve bunları yapılandırmak için bazı altyapıyı içeren geleneksel hizmet yönetimi paketidir. Özellikle, /etc/init.d dosyasındaki dosyalar, belirli bir hizmeti yönetmek için start , stop , restart ve (desteklendiğinde) reload komutlarına yanıt veren kabuk komut dosyalarıdır. Bu komut dosyaları doğrudan veya (en yaygın olarak) başka bir tetikleyici (genellikle /etc/rc?.d/ cinsinden sembolik bir bağlantının varlığı) yoluyla çağrılabilir.

/etc/init , Upstart tarafından kullanılan yapılandırma dosyalarını içerir. Upstart Ubuntu tarafından desteklenen genç bir servis yönetim paketidir. % Co_de% dosyasındaki dosyalar, Upstart öğesinin nasıl ve ne zaman /etc/init , start , stop olarak yapılandırılacağını söyleyen veya bir hizmetin% co_d% 'ını sorgulayan yapılandırma dosyalarıdır. Uduntu, Udit'in konfigürasyon dosyaları tercih edilmesine rağmen SysVinit betikleri ile birçok hizmetin neden geldiğini açıklayan SysVinit'ten Upstart'a geçiş yapıyor. Aslında, SysVinit komut dosyaları Upstart'ta bir uyumluluk katmanı tarafından işlenir.

Dizin adlarında reload , genellikle, birçok yapılandırma dosyasını veya belirli bir durum için komut dosyalarını içeren bir dizini gösterir (ör. status , sanal .d yapmak için birleştirilmiş dosyalar içerir; /etc/apt/sources.list.d , bir ağ i nter f ace etkinleştirildi). Bu yapı genellikle, dizindeki her giriş farklı bir kaynak tarafından sağlandığında kullanılır, böylece her paket kendi eklentisini, kendisine başvurmak üzere tek bir yapılandırma dosyasını ayrıştırmadan depolayabilir. Bu durumda, "init" dizinin mantıksal adıdır, SysVinit önce gelir ve sources.list kullanılır ve Upstart benzer bir amaca sahip bir dizin için /etc/network/if-up.d kullanılır (daha fazla "mainstream" olurdu). ”Ve belki de daha az kibirli, eğer init.d kullanmışlarsa).

¹ initrd sayılmıyor

    
verilen cevap Gilles 02.10.2010 01:28
26

".d", genellikle bir komut dosyası veya tek bir yapılandırma dosyası tarafından kullanılan (veya ne yapılabildiğini), kolaylık amacıyla birden çok dosyaya bölünmüş olduğunu belirtmek için bir dizin adına eklenir. ama dahil edilmeli veya birlikte uygulanmalıdır.

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

Hangi sıranın dahil edilmesi / çalıştırılması gerektiğinin önemli olduğu durumlarda, bu dizinlerdeki dosyalar bazen "00-varsayılan" ya da "80-kullanıcı" gibi bir sayı ile başlar, böylece doğru sırada çalışırlar.

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

    
verilen cevap thomasrutter 10.05.2013 04:51
12

İşaret ettiğiniz gibi, ".d" isimlendirmesi şaşırtıcı ve tuhaftır ve herhangi modern bir sistemde gerçekten hiçbir yer yoktur - modern hizmetlerin çoğunun onu düşürme eğiliminde olduğunu fark edersiniz.

Dizinin /etc/init olması ve /etc/upstart değerinin olmaması, Upstart'ın proje adı olması, kurulu olan ikili kodun hala /sbin/init olması nedeniyle, yapılandırmasının bir adı olmayan bir ada sahip olması anlamlı değildir. ikili ile eşleş.

    
verilen cevap Scott 13.10.2010 03:59

Etiketlerdeki diğer soruları oku