İ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