Linux'u Tanıyın: /etc/init.d Dizini
- Kategori: Linux
Linux kullanıyorsanız, büyük olasılıkla duymuşsunuzdur. init.d. dizin. Peki bu dizin tam olarak ne yapıyor? Nihayetinde tek bir şey yapar ama tüm sisteminiz için tek bir şey yapar. init.d. çok önemli. init.d. dizini, sisteminizdeki çeşitli hizmetler için bir dizi başlatma / durdurma komut dosyası içerir. Herşeyden acpid için x11-ortak bu dizinden kontrol edilmektedir. Tabii ki tam olarak o kadar basit değil.
Bakarsan /vb dizini şeklinde olan dizinleri bulacaksınız rc # .d (Burada #, belirli bir başlatma seviyesini yansıtır - 0'dan 6'ya kadar). Bu dizinlerin her birinin içinde, işlemleri kontrol eden bir dizi başka komut dosyası bulunur. Bu komut dosyaları ya bir 'K' veya bir 'S' ile başlayacaktır. Tüm 'K' betikleri, 'S' betiklerinden önce çalıştırılır. Ve komut dosyalarının nerede bulunduğuna bağlı olarak, komut dosyalarının ne zaman başlayacağını belirleyecektir. Dizinler arasında sistem hizmetleri, iyi yağlanmış bir makine gibi birlikte çalışır. Ancak, bir işlemi temiz bir şekilde ve kill veya killall komutlarını kullanmadan başlatmanız veya durdurmanız gereken zamanlar vardır. Bu nerede /etc/init.d dizin kullanışlı oluyor.
Şimdi, Fedora gibi bir dağıtım kullanıyorsanız, bu dizini şurada bulabilirsiniz: /etc/rc.d/init.d . Konum ne olursa olsun aynı amaca hizmet eder.
Herhangi bir komut dosyasını kontrol etmek için init.d. manuel olarak root (veya sudo) erişimine sahip olmanız gerekir. Her komut dosyası bir komut olarak çalıştırılacak ve komutun yapısı aşağıdaki gibi görünecektir:
/etc/init.d/command SEÇENEK
Nerede komuta çalıştırılacak gerçek komuttur ve SEÇENEĞİ aşağıdakilerden biri olabilir:
- Başlat
- Dur
- Tekrar yükle
- tekrar başlat
- kuvvet yeniden
Çoğu zaman ikisinden birini kullanacaksınız başla dur, veya tekrar başlat. Dolayısıyla, ağınızı durdurmak istiyorsanız şu komutu verebilirsiniz:
/etc/init.d/networking stop
Veya ağınızda bir değişiklik yaparsanız ve yeniden başlatmanız gerekirse, aşağıdaki komutla bunu yapabilirsiniz:
/etc/init.d/networking restart
Bu dizindeki daha yaygın init betiklerinden bazıları şunlardır:
- ağ
- samba
- apache2
- ftpd
- sshd
- güvercinlik
- mySQL
Elbette dizininizde daha sık kullanılan komut dosyaları olabilir - bu, ne yüklediğinize bağlıdır. Yukarıdaki liste bir Ubuntu Sunucusu 8.10 kurulumundan alınmıştır, bu nedenle standart bir masaüstü kurulumunda birkaç daha az ağ tipi komut dosyası bulunur.
Peki ya /etc/rc.local
Oldukça kullandığım üçüncü bir seçenek var. Bu seçenek, /etc/rc.local senaryo. Bu dosya, diğer tüm init seviyesindeki komut dosyaları çalıştıktan sonra çalışır, bu nedenle, başlangıçta vermesini istediğiniz çeşitli komutları koymak güvenlidir. Çoğu zaman bu betiğe nfs gibi şeyler için montaj talimatları koyacağım. Burası aynı zamanda 'sorun giderme' komut dosyalarını yerleştirmek için de iyi bir yerdir. Örneğin, bir kez bir makineye sahip olduğumda, herhangi bir nedenle samba başlatmak istemiyor gibi görünüyordu. Daha sonra, Samba arka plan programının açılışta başlayacak şekilde kurulduğundan emin olmak. Bu yüzden, tüm zamanımı bununla geçirmek yerine, basitçe şu satırı yerleştirdim:
/etc/init.d/samba başlangıcı
içinde /etc/rc.local senaryo ve Samba harika çalıştı. Sonunda geri dönüp bu konuyu çözmekte zorlanacaktım.
Son düşünceler
Linux esnektir. Linux o kadar esnektir ki, tek bir sorunu çözmenin neredeyse kaçınılmaz olarak birçok yolu vardır. Bir sistem hizmeti başlatmak böyle bir konudur. Yardımıyla /etc/init.d sistem (yanı sıra /etc/rc.local ) hizmetinizin başlayacağından emin olabilirsiniz.