Provided by:
manpages-tr_1.0.5.1-2_all 
İSİM
init - süreç kontrol başlangıcı
telinit - çalışma seviyesini değiştirir
KULLANIM
/sbin/init [ -a ] [ -s ] [ -b ] [ -z xxx] [ 0123456Ss ]
/sbin/telinit [ -t saniye ] [ 0123456sSQqabcUu ]
AÇIKLAMA
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:
F(AIL) Enerji KGK tarafından sağlanıyordur ve bir süre sonra enerji
kesilecektir. powerwait ve powerfail girdileri çalıştırılır.
O(K) Enerji tekrar gelmiştir. powerokwait girdisi çalıştırılır.
L(OW) 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.
TELINIT
/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.
a,b veya c
init'in, sadece a,b veya c çalışma seviyesi için verilmiş olan
/etc/inittab dosyası girdilerini çalıştırması istenir.
Q veya q
init'in, /etc/inittab dosyasını tekrar kontrol etmesi istenir.
S veya s
init'in tek kullanıcılı kipe geçmesi istenir.
U veya u
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.
ORTAM DEĞİŞKENLERİ
init, çalıştırdığı alt süreçler için aşağıdaki ortam değişkenlerini
ayarlar:
PATH /usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin
INIT_VERSION
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.
RUNLEVEL
Geçerli sistem çalışma seviyesi.
PREVLEVEL
Bir önceki sistem çalışma seviyesi. Çalışma seviyesinin
değiştirilmesi durumunda, öncekini tespit etme açısından
faydalıdır.
CONSOLE
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:
-s, S, single
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.
-b, emergency
Herhangi bir açılış betiğini çalıştırmadan doğrudan tek
kullanıcılı kip kabuğuna düşer.
-a, auto
Ç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 xxx -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.
ARAYÜZ
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.
SİNYALLER
init çeşitli sinyallere tepki verir:
SIGHUP 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.
SIGUSR1
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.
SIGINT CTRL-ALT-DEL üçlemesine basıldığı durumlarda, çekirdek init'e bu
sinyali gönderir. O da ctrlaltdel eylemini etkinleştirir.
SIGWINCH
KeyboardSignal tuşuna basıldığı durumlarda, çekirdek init'e bu
sinyali gönderir. O da kbrequest eylemini etkinleştirir.
UYUM
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
UYARILAR
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.
TANI KOYMA
Ş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.
YAZAN
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
23 Ağustos 2001 init(8)