Neden init.d komut dosyaları vb?


16

/etcSistem yapılandırma dosyaları için okumaya / duymaya devam ediyorum . Bu komut başladığını neden birisi / bana bazı sezgi vermek açıklayabilir / durdurma / yeniden çeşitli programlar içinde genellikle /etcyerine /varveya /usrbenzer bir şey ya?


Soru biraz fikir odaklı olsa da, sorunun gerçek gerçeklerle cevaplanabileceğini düşünüyorum.
Julie Pelletier

Tarihsel nedenlerle ilgili sorular "görüşe dayalı" mı? Geriye dönüp baktığımızda, muhtemelen bir şeyin olmasının gerçek bir nedeni var. Sadece "Bay Grandhacker bunu yaptıysa" bile , soruyu cevaplayan kimsenin görüşüne bağlı değil .
ilkkachu

Bunun dışında, soru, "neden olmalı?" Dedi ve bu da fikir temelli "renkli tartışmalar" için tetikleyici oldu. Daha az yapmak için biraz düzenlenmiş. @Adam, bunun niyetinize aykırı olduğunu düşünüyorsanız geri dönün.
ilkkachu

1
Çünkü hizmetlerin ne zaman ve nasıl başladığı sistem yapılandırmasıdır.
OrangeDog

1
Histerik kuru üzüm için.
TMN

Yanıtlar:


22

Erken (hem tarihsel olarak, hem de önyükleme sürecinde ...), (ilk monte edilen dosya sisteminin) /etcbir parçasıdır , ancak (diskler büyüyene kadar) değildi. tutar//usr/var geçici bu komut geçici değilken, verileri.

Bu kadar basit değil, ama bu şekilde başladı ve tüm dizin düzenini yeniden işlemenin pek bir nedeni yok.


1
Dediğiniz gibi, o kadar basit değil. Çeşitli ticari UNIX sistemleri /etc, bir noktada veya başka bir yerde gerçek ikili yürütülebilir dosyalara sahipti . En azından init.dçoğunlukla modern sistemlerde senaryolar. Ancak yine de /etcsalt okunur olarak monte edilmesi mümkün değildir .
Satō Katsura

2
@SatoKatsura: Komut dosyası dilleri gibi hissettiren derlenmiş dillerin ortaya çıkmasıyla birlikte, bazı / etc komut dosyalarının (hatta başlangıç ​​komut dosyalarının) go programları - ikili yürütülebilir dosyalar ile değiştirildiğini fark etmeye başladım.
slebetman

Modern sysVinit değiştirmelerinin tam teşekküllü komut dosyaları yerine basit yapılandırma dosyaları kullandığını, ayrıca yapılandırma /etcdışı öğelerin temizlenebileceğine dikkat etmek de ilginçtir .
GnP

/tmpgeçici verileri tutar. /vardeğişken veri tutar
Neil McGuigan

14

Başlangıç ​​komut dosyaları aslında sistem yapılandırmasının önemli bir parçasıdır.

Önyükleme işlemi 15-30 yıl öncesine göre çok daha az özelleştirilmiş olsa da ve başlangıç ​​yapılandırmasının çoğu otomatikleştirilmiş olsa da, başlatma sırasını belirleyen tüm yönetim seçenekleri hala mevcuttur /etc.

Bu, sistem yapılandırmasını korumak ve yedeklemek için çok merkezi bir yolu temsil eder. Çoğu sistemde, /etctüm sistemin kolaylıkla yeniden kurulmasını sağlamak için yedekleme yeterlidir. Gerekli programlarla tam bir yeniden kurulum yapmanız ve /etcyedeklemenizi geri yüklemeniz yeterlidir .


3

M. Dickey ve M. Pelletier, sorunun önermesini satın almışlardır. Ancak bina yanlış.

" /etcSistem yapılandırma dosyaları içindir" ifadesini okuduysanız, resmin tamamını sizin için boyamayan bir şey okudunuz demektir. İsme bak. "Et cetera". İnsanlar her şeyi orada bir anda evye bar koydu.

  • /etc/rc eskiden (ve bazı sistemlerde hala) program herşeyi başlatmak için çalışır.
  • İlk kullanıcı işlemi için program görüntü dosyası /etc/initbir noktadaydı (örneğin, XENIX'te, örneğin, başlatma işlemi çok önce bir fikirdi).
  • /etc/profile, /etc/zprofile ve geri kalan her şey kesinlikle komut dosyasıdır.
  • OpenBSD'ler /etc/netstartbir programdır; FreeBSD'ler gibi/etc/ipfw.rules .
  • Yani çok FreeBSD en vardır /etc/rc.suspendve /etc/rc.resume; ve gerçekten /etc/rc.sendmail,, /etc/rc.bsdextendedve /etc/rc.firewall.

Benzer şekilde, eğer "start komut / durdurma / çeşitli programlar içinde genellikle yeniden okumuştum /etcyerine /varveya /usrbenzer ya da bir şey" o zaman sizin için tam resmini vermez başka bir şey okudum.

  • FreeBSD / PC-BSD kuralı, /usr/local/etc/rc.d/işletim sistemi olmayan rckomut dosyaları için bir dizine sahip olmaktır . rcher türlü şey için senaryo altından ziyade orada yaşıyor /etc.
  • Sen daemontools-aile içine bazı hizmet yönetim şeyler koyarak insanları bulacaksınız /var/sv, /var/serviceve benzeri yerler. (Bir örnek olarak, nosh araç setim neredeyse bin servis paketi sağlıyor /var/sv. İçeri giren tek servis paketleri , monte edilen ve kontrol eden hizmetler de dahil olmak üzere daha /etc/service-bundlesönce gerekli olan 60 ila 70 arasındadır./usr/usr gerekirse ediliyor.)
  • systemd işletim sistemi konvansiyonlar bazı şeyler yaşayan var /etc/systemd, bazı şeyler /run/systemd, bazı şeyler /usr/lib/systemdve ( o uygulanamaz nedenlerle belgesiz oluyor rağmen ) bazı şeyler /usr/local/lib/systemd. Yine, "hizmetlerin başlatılması / durdurulması için gereken şeylerin" çoğunluğu altında /usrdeğil altında bulunur /etc.

2

Dosya Sistemi Hiyerarşi Standardını incelemeniz iyi olur . Bunun tam olarak neden olduğunu (ayrıntılı olarak) açıklayacaktır, ancak merak edebileceğiniz diğer birçok yol hakkında da bu bilgileri içerir.

Dosya sistemi standardı, Unix dağıtım geliştiricileri, paket geliştiricileri ve sistem uygulayıcıları tarafından kullanılmak üzere tasarlanmıştır. Bununla birlikte, öncelikle bir referans olması amaçlanmıştır ve bir Unix dosya sisteminin veya dizin hiyerarşisinin nasıl yönetileceği hakkında bir öğretici değildir.


Tarihi geçmişi açıklamaz.
Thorbjørn Ravn Andersen

2

Digital UNIX, komut dosyalarını /sbin/init.ddizinin altına oldukça hassas bir şekilde yerleştirdi . Ve ayrıca rosetta taşa göre HP-UX .

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.