ÝSÝM
- Provided by: manpages-tr (Version: 1.0.5.1-2)
- Report a bug
/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.
Ç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.
Ç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).
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:
Þ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:
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:
Açýlýþ esnasýnda init'e seçenekler girilebilir (LILO içinden). init þu seçenekleri kabul eder:
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, 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.
/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.
bash(1), getty(1), kill(1), login(1), initscript(5), inittab(5), utmp(5), runlevel(8), shutdown(8).
Yalçýn Kolukýsa <yalcink01 (at) yahoo.com>, Þubat 2004