Linux'ta 'init' Komutu Nasıl Kullanılır
İçinde hepsinin ebeveynidir Linux süreçleri. Bilgisayar açıldığında başlayan ilk işlemdir ve sistem kapanana kadar devam eder. Diğer tüm süreçlerin atasıdır.
Birincil rolü, dosyada depolanan bir komut dosyasından işlemler oluşturmaktır. /etc/inittab. Bu dosya genellikle aşağıdakilere neden olan girdileri depolar: İçinde yumurtlamak getty'ler sistem kullanıcılarının oturum açabileceği her satırda. Ayrıca herhangi bir belirli sistemin gerektirdiği otonom süreçleri de kontrol eder.

Çalışma seviyeleri
A çalışma seviyesi sadece seçilmiş bir grup işlemin yürütülmesine izin veren sistemin bir yazılım konfigürasyonudur. ortaya çıkardığı süreçler İçinde bu çalışma düzeylerinin her biri için /etc/inittab dosyasında tanımlanır. İçinde sekiz çalışma seviyesini destekler: 0 vasıtasıyla 6 ve S veya s. Ayrıcalıklı bir kullanıcı çalıştığında çalışma seviyesi değişir telinituygun sinyalleri gönderen İçinde, hangi çalışma düzeyine geçeceğini söyler.
0, 1 ve 6 çalışma seviyeleri ayrılmıştır. Runlevel 0 sistemi durdurur, runlevel 6
7'den 9'a kadar olan çalışma seviyeleri geçerlidir ancak iyi belgelenmemiştir çünkü geleneksel Unix varyantlar bunları kullanmaz. Çalışma seviyeleri S ve s aynıdır.
önyükleme
Sonrasında İçinde son adımı olarak yürütür çekirdek önyükleme sırası, türde bir giriş olup olmadığını görmek için /etc/inittab dosyasını arar initdefault. initdefault girişi, sistemin ilk çalışma düzeyini belirler. Böyle bir giriş yoksa (veya hiç /etc/inittab yoksa), bir çalışma seviyesi girilmelidir. sistem konsolu.
Runlevel S veya s, sistemi tek kullanıcı moduna alır ve /etc/inittab dosyası gerektirmez. Tek kullanıcı modunda, /dev/console üzerinde bir kök kabuk açılır.
Tek kullanıcı moduna girerken, içinde konsolunkini okur ioctl /etc/ioctl.save'den durumlar. Bu dosya yoksa, içinde hattı 9600 baud'da ve CLOCAL ayarlarıyla başlatır. Ne zaman içinde tek kullanıcı modundan çıkar, konsolun ioctl ayarlarını bir sonraki tek kullanıcı oturumu için yeniden kullanabilmesi için bu dosyada saklar.
Çok kullanıcılı bir moda ilk kez girerken, İçinde kullanıcılar oturum açmadan önce dosya sistemlerinin bağlanmasına izin vermek için önyükleme ve önyükleme girişlerini gerçekleştirir. Ardından, çalışma düzeyi işlemiyle eşleşen tüm girişler.
Yeni bir sürece başlarken, İçinde önce /etc/initscript dosyasının var olup olmadığını kontrol eder. Varsa, işlemi başlatmak için bu komut dosyasını kullanır.
Bir çocuk her sona erdiğinde, İçinde bu dosyaların mevcut olması koşuluyla, /var/run/utmp ve/var/log/wtmp dosyalarında gerçeği ve neden öldüğünü kaydeder.
Çalışma Seviyelerini Değiştirme

Belirtilen tüm süreçleri ortaya çıkardıktan sonra, İçinde alt süreçlerinden birinin ölmesini, bir güç kesintisi sinyalini veya Telinit tarafından sistemin çalışma seviyesini değiştirmesi için sinyal verilene kadar bekler. Bu üç koşuldan biri gerçekleştiğinde, /etc/inittab dosyasını yeniden inceler. Bu dosyaya her zaman yeni girdiler eklenebilir. Yine de, içinde hala yukarıdaki üç koşuldan birinin gerçekleşmesini bekler. Anında yanıt verebilmek için, Telinit Q komut uyanır İçinde /etc/inittab dosyasını yeniden incelemek için.
Eğer İçinde tek kullanıcı modunda değil ve bir güç kesintisi alıyor sinyal, /etc/powerstatus dosyasını okur. Daha sonra bir başlar emretmek bu dosyanın içeriğine göre:
- F(her şey): Güç kesiliyor, gücü UPS sağlıyor. Yürüt güç bekleme ve güç kaybı girdileri.
- Ö(K): Güç geri yüklendi, yürütün powerokwait girdileri.
- L(OW): Güç kesiliyor ve KGK'nın pili zayıf. Yürüt güç kesintisi girdileri.
/etc/powerstatus yoksa veya F, O veya L harflerinden başka bir şey içeriyorsa, İçinde F harfini okuyormuş gibi davranır.
SIGPWR ve /etc/powerstatus kullanımı artık önerilmez. Modern olarak /dev/initctl kontrol kanalını kullanın Linux dağıtımları.
Ne zaman İçinde runlevel'i değiştirmesi istenirse, yeni runlevel'de tanımsız olan tüm işlemlere SIGTERM uyarı sinyali gönderir. Ardından, SIGKILL sinyalini kullanarak bu işlemleri zorla sonlandırmadan önce beş saniye bekler. İçinde tüm bu süreçlerin ve onların soyundan gelenlerin aynı süreç grubunda kaldığını varsayar. İçinde aslen onlar için yaratılmıştır. Herhangi bir süreç süreç grubu bağlantısını değiştirirse, bu sinyalleri almaz. Bu tür işlemler ayrı ayrı sonlandırılmalıdır.
telinit
telinit /sbin/init ile bağlantılıdır. Tek karakterlik bir argüman alır ve sinyaller verir. İçinde uygun eylemi gerçekleştirmek için. Aşağıdaki argümanlar direktif görevi görür: telinit:
- 0, 1, 2, 3, 4, 5 veya 6: Belirtilen çalışma düzeyine geçin.
- a, b, c: Yalnızca çalışma düzeyi a, b veya c olan /etc/inittab dosya girişlerini işleyin.
- Q veya Q: /etc/inittab dosyasını yeniden inceleyin.
- S veya s: Tek kullanıcı moduna geçin. Bazen tek kullanıcı modu denir kurtarma Modu çünkü genellikle acil durum sistem onarımlarını gerçekleştirmek için kullanılır.
- sen veya sen: Kendini yeniden çalıştır (durumu koruyarak). /etc/inittab dosyası yeniden incelenmez. Çalışma seviyesi S, s, 1, 2, 3, 4 veya 5 olmalıdır; aksi takdirde istek sessizce yok sayılır.
telinit ayrıca söyleyebilir İçinde gönderme işlemleri arasında ne kadar beklemesi gerektiğini SIGTERM ve SIGKILL sinyalleri. Varsayılan, beş saniyedir, ancak bu değer, -T saniye seçenek.
telinit yalnızca uygun ayrıcalıklara sahip kullanıcılar tarafından çağrılabilir.
NS İçinde ikili kontroller İçinde veya telinit süreç kimliğine bakarak. Gerçek İçinde'nin işlem kimliği her zaman 1'dir. Bundan, aramak yerine telinit, bir kişi kullanabilir İçinde kısayol olarak.