System V Genel Bakış
Init’in ana amacı, sistemdeki temel process’leri başlatmak ve durdurmaktır. Linux’ta üç büyük init implementasyonu vardır: System V, Upstart ve systemd. Bu derste, init’in en geleneksel sürümünü, System V init veya Sys V’yi (“System Five” olarak telaffuz edilir) ele alacağız.
Sys V init implementasyonunu kullanıp kullanmadığınızı öğrenmek için, eğer bir /etc/inittab dosyanız varsa büyük olasılıkla Sys V çalıştırıyorsunuzdur.
Sys V process’leri sıralı olarak başlatır ve durdurur, diyelim ki foo-a adlı bir servisi başlatmak istiyorsunuz, foo-b’nin çalışabilmesi için foo-a’nın zaten çalıştığından emin olmanız gerekir. Sys V bunu script’lerle yapar, bu script’ler bizim için servisleri başlatır ve durdurur; kendi script’lerimizi yazabiliriz veya çoğu zaman işletim sisteminde zaten yerleşik olan ve temel servisleri yüklemek için kullanılan script’leri kullanırız.
Bu init implementasyonunu kullanmanın avantajı, bağımlılıkları çözmenin nispeten kolay olmasıdır, çünkü foo-a’nın foo-b’den önce geldiğini bilirsiniz. Ancak performans harika değildir, çünkü genellikle bir seferde bir şey başlatılır veya durdurulur.
Sys V kullanırken, makinenin durumu 0’dan 6’ya kadar ayarlanan runlevel’lar ile tanımlanır. Bu farklı modlar dağıtıma bağlı olarak değişiklik gösterir, ancak çoğu zaman aşağıdaki gibi görünür:
0: Shutdown
1: Single User Mode
2: Multiuser mode without networking
3: Multiuser mode with networking
4: Unused
5: Multiuser mode with networking and GUI
6: Reboot
Sisteminiz başlatıldığında, hangi runlevel’da olduğunuzu kontrol eder ve o runlevel yapılandırmasının içinde bulunan script’leri çalıştırır. Script’ler /etc/rc.d/rc[runlevel number].d/ veya /etc/init.d dizininde bulunur. S (start) veya K (kill) ile başlayan script’ler sırasıyla startup ve shutdown sırasında çalışacaktır. Bu karakterlerin yanındaki numaralar, hangi sırayla çalıştıklarını gösterir.
Örneğin:
pete@icebox:/etc/rc.d/rc0.d$ ls
K10updates K80openvpn
Runlevel 0 veya shutdown moduna geçtiğimizde, makinemiz updates servislerini ve ardından openvpn’i kapatmak (kill) için bir script çalıştırmaya çalışacaktır. Makinenizin hangi runlevel’da boot ettiğini öğrenmek için /etc/inittab dosyasındaki varsayılan runlevel’a bakabilirsiniz. Ayrıca bu dosyada varsayılan runlevel’ınızı da değiştirebilirsiniz.
Bir not: System V yavaş yavaş değiştirilmektedir, belki bugün değil, hatta yıllar sonra bile. Yine de diğer init implementasyonlarında runlevel’ların ortaya çıktığını görebilirsiniz, bu esas olarak sadece System V init script’leri kullanılarak başlatılan veya durdurulan servisleri desteklemek içindir.
Last updated