Ubuntu Manpages

/sbin/init    [ -a ] [ -s ] [ -b ] [ -z xxx] [ 0123456Ss ]
/sbin/telinit [ -t saniye ] [ 0123456sSQqabcUu ]

init, bütün süreçlerin atasýdýr. init'in birincil görevi /etc/inittab içinde saklý betikten süreçler oluþturmaktýr (ayrýntýlar için inittab(5)'a bakýnýz). Bu dosyada, init'in çeþitli hatlar üzerinden kullanýcýlarýn baðlanmasýný saðlamak üzere getty(1) süreçleri oluþturmasýný saðlayan girdiler vardýr. Ayrýca belirli sistemler tarafýndan ihtiyaç duyulan özerk süreçleri de kontrol eder.

ÇALIÞMA SEVÝYELERÝ

Çalýþma seviyesi, sistemde varolan süreçlerden belirtilmiþ olanlarýn çalýþmasýný saðlayan yazýlým yapýlandýrmasýna verilen addýr. Her bir çalýþma seviyesi için, init tarafýndan baþlatýlan süreçler /etc/inittab dosyasý içinde tanýmlýdýr. init sekiz deðiþik çalýþma seviyesinden birinde olabilir: 0-6, S veya s. Çalýþma seviyesi telinit kullanýlarak yetkili bir kullanýcý tarafýndan, init'e uygun bir sinyal gönderilerek deðiþtirilir.

Çalýþma seviyeleri 0, 1 ve 6 ayrýlmýþ seviyelerdir. 0 sistemi durdurmak için, 6 tekrar baþlatmak için ve 1 ise tek kullanýcýlý kipe döndürmek için kullanýlýr. S seviyesi doðrudan kullanýcý ile alakalý deðildir, daha çok çalýþma seviyesi 1'e girerken çalýþtýrýlan betikleri ifade eder. Bu konuda daha fazla bilgi için shutdown(8) ve inittab(5)'a bakýnýz.

7-9 arasý çalýþma seviyeleri de geçerlidir ama bu seviyeler hakkýnda belgelendirme yapýlmamýþtýr. Çünkü "geleneksel" Unix türevleri bu seviyeleri kullanmazlar. Sýrf merakýnýz gidermek için belirteyim ki S ve s aynýdýr ve ayný çalýþma seviyesini belirtirler.

SÝSTEM AÇILIÞI

Çekirdek açýlýþ töreninin son halkasý olarak init çalýþtýrýldýðý zaman, içinde öntanýmlý çalýþma seviyesi girdisi olup olmadýðýný kontrol etmek için /etc/inittab dosyasýna bakýlýr (bakýnýz inittab(5)). Bu öntanýmlý çalýþma seviyesi, sistem açýlýþý sonrasý düþülecek çalýþma seviyesini belirtir. Bu tür bir girdi yok ise veya /etc/inittab dosyasý yok ise, konsoldan bir çalýþma seviyesi girilmesi gerekir.

Çalýþma seviyeleri S veya s, sistemi tek kullanýcý kipe sokar ve /etc/initab dosyasýna ihtiyaç duymazlar. Tek kullanýcýlý kipte, /dev/console üzerinde bir root kullanýcý kabuðu açýlýr.

Tek kullanýcýlý kipine girilince, init konsolun ioctl(2) durumunu /etc/ioctl.save dosyasýnda okur. Þayet bu dosya yok ise, init hattý 9600 baud ve CLOCAL ile ilklendirir. init tek kullanýcýlý kipi terk ederken konsolun ioctl ayarlarýný bu dosyaya kaydeder. Böylece tekrar tek kullanýcýlý kipe geçildiði zaman bu ayarlarý kullanabilir.

Çok kullanýcýlý kipe ilk sefer giriþte, kullanýcýlar baðlanmadan önce dosya sisteminin baðlanmasýný saðlayabilmek için boot ve bootwait girdileri init tarafýndan çalýþtýrýlýr. Daha sonra çalýþma seviyesi ile eþleþen bütün girdiler çalýþtýrýlýr.

Yeni bir süreç baþlatýlýrken, init ilk olarak /etc/initscript dosyasýnýn var olup olmadýðýný kontrol eder. Þayet var ise, bu dosyada bulunan betikler süreci baþlatmak için kullanýlýr.

Bir alt süreç her sonlandýðýnda, bunun sebebi init tarafýndan /var/run/utmp ve /var/log/wtmp içine yazýlýr (bu dosyalarýn mevcut olup olmadýðý önce kontrol edilir).

ÇALIÞMA SEVÝYELERÝNÝN DEÐÝÞTÝRÝLMESÝ

Belirtilen bütün süreçler çalýþtýrýldýktan sonra init; kendi oluþturduðu bir sürecin sonlandýrýlmasýný, bir enerji kesme sinyalinin veya telinit tarafýndan gönderilen bir çalýþma seviyesi deðiþtirme sinyalinin gelmesini bekler. Bu üç durumdan biri gerçekleþirse, /etc/inittab dosyasýný tekrar kontrol eder. Bu dosyaya yeni girdiler eklenmiþ olabilir. Bununla birlikte, init bunlardan birinin gerçekleþmesini bekler. Durumlara anýnda tepki verebilmek için, telinit'in Q veya q komutu ile init'in /etc/inittab dosyasýný tekrar kontrol etmesi saðlanabilir. Þayet init tek kullanýcýlý kipte deðilse ve bir enerji kesme sinyali alýrsa (SIGPWR), gidip /etc/powerstatus dosyasýný okur. Daha sonra bu dosyanýn içeriðine baðlý olarak þu komutlardan birini uygular:

Enerji KGK tarafýndan saðlanýyordur ve bir süre sonra enerji kesilecektir. powerwait ve powerfail girdileri çalýþtýrýlýr.

Enerji tekrar gelmiþtir. powerokwait girdisi çalýþtýrýlýr.

KGK'nýn akülerindeki enerji azalmaktadýr ve enerji kesilecektir. Powerfailnow girdisi çalýþtýrýlýr.

Þayet /etc/powerstatus yok ise veya F, O veya L harflerinden farklý bir þey ihtiva ediyorsa, init, F harfini okuduðunu kabul eder ve ona göre davranýr.

SIGPWR ve /etc/powerstatus kullanýmý tavsiye edilmez. init ile etkileþimli kipe geçmek isteyen birisinin /dev/initctl'yi kullanmasý daha uygun olur. Bu konuda daha ayrýntýlý bilgi için sysvinit paketinin kaynak kodundaki belgelere bakýnýz. Çalýþma seviyesi deðiþtirme isteði init'e iletilince; init yeni seviyede tanýmlanmamýþ olan bütün süreçlere SIGTERM sinyali gönderir. Daha sonra bu süreçleri sonlandýrmadan önce 5 saniye bekler. 5 saniye sonra SIGKILL sinyali gönderir. NOT: init bütün süreçlerin ve onlarýn alt süreçlerinin ayný süreç grubu içinde kaldýðýný varsayar. Þayet herhangi bir süreç, süreç grubunu üyeliðini deðiþtirmiþ ise, o süreç bu sonlandýrma sinyalini almaz. Bu tür süreçlerin ayrýca sonlandýrýlmasý gerekir.

/sbin/telinit, /sbin/init'e bir baðdýr. Tek karakterlik argümanlar ve sinyalleri kabul eder. Aþaðýdaki argümanlar telinit'e talimat olarak verilebilir:

0,1,2,3,4,5 veya 6
init'in, belirtilen çalýþma seviyesine geçmesi istenir.

init'in, sadece a,b veya c çalýþma seviyesi için verilmiþ olan /etc/inittab dosyasý girdilerini çalýþtýrmasý istenir.

init'in, /etc/inittab dosyasýný tekrar kontrol etmesi istenir.

init'in tek kullanýcýlý kipe geçmesi istenir.

init'in, durumunu koruyarak, kendini tekrar baþlatmasý istenir. /etc/inittab dosyasý tekrar okunmaz. Çalýþma seviyeleri Ss12345'den birisi olmalýdýr. Aksi taktirde istek sessizce yok sayýlýr. Herhangi bir hata dönmez.

Ayrýca telinit, init'e SIGTERM ve SIGKILL sinyalleri arasýnda ne kadar beklemesi gerektiðini de söyleyebilir. Öntanýmlý deðer 5 saniyedir fakat -t seçeneði kullanýlarak bu deðer deðiþtirilebilir. telinit, sadece uygun yetkiye sahip kullanýcýlar tarafýndan kullanýlabilir. init çalýþtýrýlabiliri, kendinin init mi yoksa telinit mi olduðunu anlamak için süreç numarasýný kontrol eder, gerçek init'in süreç numarasý daima 1'dir. Buradan, telinit kullanmak yerine, init'in kýsa yol olarak kullanýlabileceði de ortaya çýkar.

init, çalýþtýrdýðý alt süreçler için aþaðýdaki ortam deðiþkenlerini ayarlar:

/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin

init sürüm numarasý. Bir betiðin doðrudan init tarafýndan çalýþtýrýp çalýþtýrmadýðýný anlamak açýsýndan faydalýdýr.

Geçerli sistem çalýþma seviyesi.

Bir önceki sistem çalýþma seviyesi. Çalýþma seviyesinin deðiþtirilmesi durumunda, öncekini tespit etme açýsýndan faydalýdýr.

Sistem konsolu. Gerçekte çekirdekten miras alýnýr. Þayet bu seçenek ayarlanmaz ise, init tarafýndan öntanýmlý olarak /dev/console kullanýlýr.

AÇILIÞ SEÇENEKLERÝ

Açýlýþ esnasýnda init'e seçenekler girilebilir (LILO içinden). init þu seçenekleri kabul eder:

Tek kullanýcý kipinde açýlýþ. Bu kipte /etc/inittab dosyasý incelenir ve açýlýþ rc betikleri, tek kullanýcýlý kip kabuðu baþlatýlmadan önce çalýþtýrýlýr.

1-5
Açýlýþ sonrasý girilecek çalýþma seviyesini belirtir.

Herhangi bir açýlýþ betiðini çalýþtýrmadan doðrudan tek kullanýcýlý kip kabuðuna düþer.

Çekirdek, kullanýcýnýn müdahalesine gerek kalmadan öntanýmlý komut satýrý ile yüklenmiþse, LILO önyükleyicisi komut satýrýna "auto" sözcüðünü ekler. Þayet bu bulunursa, init AUTOBOOT ortam deðiþkenine "yes" deðerini atar. Bunu bir güvenlik ölçüsü olarak kullanamayacaðýnýzý unutmayýn, çünkü kullanýcý komut satýrýný kendi de tanýmlayabilir.

-z'ye verilen argüman yok sayýlýr. Bu seçeneði komut satýrýný biraz daha geniþletmek için kullanabilirsiniz, böylece yýðýt içinde daha fazla yer kaplamasý saðlanmýþ olur. init komut satýrýný büyük bir ustalýkla yönetir, böylece ps(1) geçerli çalýþma seviyesini gösterebilir.

init iletiler için; /dev içindeki /dev/initctl fifosunu dinler. Arayüz tam olarak bitmemiþ ve belgeleme iþlemleri de bitirilmemiþtir. Ýlgilenenler /src dizinindeki init kaynak kodlarýnýn tar arþivindeki initreq.h dosyasýna bakabilirler.

init çeþitli sinyallere tepki verir:

init /etc/initrunlvl ve /var/log/initrunlvl dosyalarýný arar. Þayet bu dosyalardan birisi var ise ve bir ASCII çalýþma seviyesi içeriyorsa, init bu çalýþma seviyesine geçer. Bu sadece geçmiþe uyum için konulmuþtur. Normal durumlarda (dosyanýn olmadýðý durumlarda) init, telinit'in -q seçeneði ile çalýþtýrýldýðýný kabul eder ve buna göre davranýr.

Bu sinyali alýnca, init kendi denetim fifosu olan /dev/initctl'u kapatýr ve tekrar açar. /dev dizinin tekrar baðlandýðý zamanlarda, açýlýþ betikleri için oldukça faydalýdýr.

CTRL-ALT-DEL üçlemesine basýldýðý durumlarda, çekirdek init'e bu sinyali gönderir. O da ctrlaltdel eylemini etkinleþtirir.

KeyboardSignal tuþuna basýldýðý durumlarda, çekirdek init'e bu sinyali gönderir. O da kbrequest eylemini etkinleþtirir.

init, System V init ile uyumludur. /etc/init.d ve /etc/rc{çalýþmaseviyesi}.d dizinleri içindeki betikler ile birlikte uyum içinde çalýþýr. Eðer sisteminiz geleneksel yapýya uyuyorsa, /etc/init.d içinde bu betiklerin nasýl çalýþtýðýný açýklayan bir README dosyasý bulacaksýnýz.

ÝLGÝLÝ DOSYALAR

/etc/inittab
/etc/initscript
/dev/console
/etc/ioctl.save
/var/run/utmp
/var/log/wtmp
/dev/initctl

init, süreçlerin ve bu süreçlerin soyundan gelen diðer süreçlerin orijinal süreç gruplarý içinde kaldýklarýný varsayar. Þayet bir süreç, süreç grubunu deðiþtirirse, init bu süreci öldüremez ve ayný uçbirim hattýnda iki süreç ile karþýlaþabilirsiniz.

Þayet bir girdi 2 dakika içinde 10 kereden fazla çoðaltýlýyorsa, init, bu girdi satýrýnda bir hata olduðunu düþünecek, sistem konsolundan bir hata iletisi verecek ve 5 dakika geçmeden veya bir sinyal almadan bu girdinin tekrar çoðalmasýna izin vermeyecektir. Buradaki amaç, /etc/inittab içinde hatalý bir girdinin sistem kaynaklarýný yok etmesini önlemektir.

Miquel van Smoorenburg <miquels (at) cistron.nl> tarafýndan yazýlmýþtýr, ilk kýlavuz sayfasý Michael Haardt <u31b3hs (at) pool.informatik.rwthaachen.de> tarafýndan yazýlmýþtýr.

ÝLGÝLÝ BELGELER

bash(1), getty(1), kill(1), login(1), initscript(5), inittab(5), utmp(5), runlevel(8), shutdown(8).

ÇEVÝREN

Yalçýn Kolukýsa <yalcink01 (at) yahoo.com>, Þubat 2004