Init: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Vkolesni (talk | contribs)
Rpurge (talk | contribs)
 
(91 intermediate revisions by one other user not shown)
Line 1: Line 1:
<span size="10" style="color:RED">ARTIKEL ON POOLIK</span>
= Artikli autor ja logi =
= Artikli autor ja logi =


'''Nimi:''' Vladimir Kolesnik<br />
'''Nimi:''' Vladimir Kolesnik<br />
'''Grupp:''' A22<br />
'''Grupp:''' A22<br />
'''Viimati muudetud:''' 19.04.2011<br />
'''Viimati muudetud:''' 26.05.2011<br />
<blockquote style="margin: 2em 2em 2em 0;">
<blockquote style="margin: 2em 2em 2em 0;">
{| class="wikitable" style="text-align:leftt; padding: 1em; border: 1px #aaa solid; background: #f9f9f9;"  
{| class="wikitable" style="text-align:leftt; padding: 1em; border: 1px #aaa solid; background: #f9f9f9;"  
Line 17: Line 13:
| 0.2 || 14.04.2011 || &nbsp;&nbsp;&nbsp; Sissejuhatus, lingid, sisu, tabelid.
| 0.2 || 14.04.2011 || &nbsp;&nbsp;&nbsp; Sissejuhatus, lingid, sisu, tabelid.
|-
|-
| 0.3 || 15.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine.  
| 0.3 || 15.04.2011 || &nbsp;&nbsp;&nbsp; Sisukord, runlevelid.  
|-
|-
| 0.4 || 16.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine.
| 0.4 || 16.04.2011 || &nbsp;&nbsp;&nbsp; Teenused, käsud.
|-
|-
| 0.5 || 17.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine.
| 0.5 || 17.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine.
|-
|-
| 0.6 || 19.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine.
| 0.6 || 19.04.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine, kokkuvõtte.
|-
| 1.0 || 20.04.2011 || &nbsp;&nbsp;&nbsp; Valmis.
|-
| 1.1 || 10.05.2011 || &nbsp;&nbsp;&nbsp; Artikli täiendamine. Varukoopia, backup
|-
| 1.2 || 16.05.2011 || &nbsp;&nbsp;&nbsp; Artikli nõuded
|-
| 1.5 || 26.05.2011 || &nbsp;&nbsp;&nbsp; Gramaatilised vead
|}
|}
</blockquote>
</blockquote>
Line 29: Line 33:
= Sissejuhatus =
= Sissejuhatus =


Init on kõige olulisem protsess, mis laadib kõiki teisi protsesse. Init võimaldab käivitada teie süsteemi erinevates režimiides, laseb muuta ''startup config'' faili, lubab käivitada teenuseid või neid katkestada. Init eksisteerib kõikides Linuxi süsteemides.
Init on kõige olulisem protsess, mis laeb kõiki teisi protsesse. Init võimaldab käivitada teie süsteemi erinevates režimiides, laseb muuta ''startup config'' faili, lubab käivitada teenuseid või neid katkestada. Init eksisteerib kõikides Linuxi süsteemides.


== Artikli eesmärk ==
== Artikli eesmärk ==
Line 40: Line 44:
== Artikli sisu ==
== Artikli sisu ==


Artikel on jagatud kaheks osasks. Esimene osa on teoreetiline, mis sisaldab põhimõisteid, üldist informatsiooni, ''runlevel''-i ülevaade.
Artikel on jagatud kaheks osaks. Esimene osa on teoreetiline, mis sisaldab põhimõisteid, üldist informatsiooni, ''runlevel''-i ülevaade.
<br/>
<br/>
   
   
Teine osa on praktiline, kus saab rakendada ja käivitada erinevaid init ''runlevel''-eid, erinevatel Linuxi süsteemidel (Ubuntu, FedoraCore ja SUSE).
Teine osa on praktiline, kus saab rakendada ja käivitada erinevaid init ''runlevel''-eid, erinevatel Linuxi süsteemidel (Ubuntu, FedoraCore ja SUSE).


== Artikli vajalikus ==  
== Artikli vajalikkus ==  


Vahel on vaja kiiresti mingid teenused käivitama, näiteks Apache või MySQL, või on vaja alustada oma võrguühenduse. Vahel mingid teenused ise hakkavad töötama, isegi kui teie ei ole seda käskinud ja te tahate need teenused katkestama. Kui on olemas sellised protsessid või teenused, mis automaatselt käivitatakse siis kui teie linux bootib ja teie tahate need protsessid eemaldada. Kõike selle jaoks UNIXi maailmas on olemas /etc/init kataloog, kus hoiatatakse teie startup konfig failid ja need saab muuta vastavalt vajadusele.
Vahel on vaja kiiresti teenuseid käivitada, näiteks Apache või MySQL. Mõnikord hakkavad mingid teenused ise tööle, isegi kui teie ei ole neid käivitanud. On olemas sellised protsessid ja teenused, mis automaatselt käivitatakse Linuxi ''boot''-imisel ja kui tahta neid protsesse eemaldada või muuta, siis kõige selle jaoks on UNIXi maailmas olemas /etc/init kataloog, kus hoitakse ''startup config'' faili ja seda saab korrigeerida vastavalt vajadusele.


Artikkel on kasulik ja vajalik nendele, kes tahavad rohkem teada sellest, kuidas saab kontroleerida kõike teenused mis on paigaldatud teie masinal. Lisaks artikkel annab juhendid kuidas saab käivitada sinu linux distro erinevates režiimides ja ''runlevel''-ites.
Artikkel on kasulik ja vajalik neile, kes tahavad rohkem teada saada, kuidas saab kontrollida kõiki teenuseid, mis on paigaldatud teie masinasse. Lisaks annab artikkel juhendeid, kuidas saab käivitada Linuxi distrot erinevates režiimides ja ''runlevel''-ites.


== Artikli nõuded ==
== Artikli nõuded ==


Init eksisteerib kõikidel Linux distrobutsioonidel, seetõttu mingid lisavahendeid või rakendusi pole vaja.
Initi rakendamiseks kasutajal peavad olema administraatori õigused.
 
Init eksisteerib kõikidel Linux distrodel, seetõttu mingid lisavahendeid või rakendusi pole vaja installeerida. Kasuks tuleb CLI (ehk terminali) teadmine.


<span style="color:RED"> PS: Kuna tegu on Linuxi startup-iga ja üldiselt väga tähtsama protsessiga, on mõislikum esiteks proovida oma oskusi virtuaal masinas.</span>
<span style="color:RED"> PS: Kuna tegu on Linuxi ''startup''-iga ja üldiselt väga tähtsa protsessiga, on mõistlikum esiteks proovida oma oskusi virtuaal masinas. Soovitavalt teha ka varukoopiat enne konfig faili modifitseerimist </span>


= Teoreetiline osa =
= Teoreetiline osa =


Teoreetilises osas kuvatatakse põhimõisted, informatsioon, ülevaatused erinevatest init aspektidest.
Teoreetilises osas vaatame põhimõisteid, initi informatsioon ja ülevaated erinevatest init olemusest.


== Üldine ülevaade ==
== Üldine ülevaade ==


Init (ehk '''initialization''') on rakendus mõelnud UNIX süsteemidele mis käivitab kõike teiste protsessi. Igal UNIX operatsioonsüsteemis init konfig on natukene teistsugune, aga üldiselt võib öelda, et tegu on ''runlevel''-itega. Igal ''runlevel''-il on oma PID, ehk number mis vastutab kuidas käivitatakse operatsioonsüsteemi.
Init (ehk '''initialization''') on rakendus, mis on mõeldud UNIX süsteemidele, mis käivitab kõiki teisi protsesse. Igal UNIX operatsioonsüsteemil on init ''config'' natukene erinev, aga üldiselt saab öelda, et tegu on ''runlevel''-itega. Igal ''runlevel''-il on oma PID ehk number, mis vastutab operatsioonsüsteemi käivitamise eest.
 
Erinevates Linuxi derivatiivides on sisseehitatud oma rakendus, kuidas init-i funktsioonlsust rakendatatakse. Enamus Linuxi distrod kasutavad selle jaoks System V, aga on olemas ka teisid programmid, näiteks Ubuntu kasutab Upstart, Fedoras on... jne.


Teiste sõnadega, init on kõige olulisem protsess laseb kogule süsteemile töötada.
Erinevates Linuxi derivatiivides on sisseehitatud oma rakendus, mis rakendab initi funktsionaalsust. Enamus Linuxi distroid kasutavad selle jaoks ''System V''-d, aga on olemas ka teisi programme, näiteks Ubuntu kasutab '''Upstart'''.


Teiste sõnadega, init on kõige olulisem protsess, mis laseb kogu süsteemil töötada.


=== Kuidas töötab init ===  
=== Kuidas töötab init ===  


Selleks on aru saada, kuidas töötab init ja kuidas saab selle rakendada, on vaja teada kuidas üldse toimub süsteemi käivitamine (ehk bootimine) Linuxis.
Selleks, et aru saada, kuidas töötab init ja kuidas saab seda rakendada, on vaja teada, kuidas üldse toimub süsteemi käivitamine (ehk ''boot''-imine) Linuxis.
 


Laadimise põhietapid
Laadimise põhietapid


# Toite sisselülitamise järel omandab kontrolli püsimälus olev firmware (PC puhul BIOS)
# Toite sisselülitamise järel omandab kontrolli püsimälus olev firmware (PC puhul BIOS).
# BIOS laadib ja käivitab alglaaduri (nt GRUB - GRand Unified Bootloader, LILO või Loadlin)
# BIOS laeb ja käivitab alglaaduri (nt GRUB - GRand Unified Bootloader, LILO või Loadlin).
# Alglaadur laadib tuuma ja initrd/initramfs'i (initial ramdisk/initial ram file system)
# Alglaadur laeb tuuma ja initrd/initramfs'i (initial ramdisk/initial ram file system).
# Alglaadur käivitab tuuma ning operatsioonisüsteemi käivitamiseks olulised seadmed initsialiseeritakse initramfs'is asuvate programmide abil
# Alglaadur käivitab tuuma ning operatsioonisüsteemi käivitamiseks olulised seadmed initsialiseeritakse initramfs'is asuvate programmide abil.
# Initramfs annab oma töö lõpuks juhtimise üle operatsioonisüsteemi programmile init
# Initramfs annab oma töö lõpus juhtimise üle operatsioonisüsteemi programmile init.
# Operatsioonisüsteemi init käivitab süsteemis protsessid
# Operatsioonisüsteemi init käivitab protsessid.
# Süsteem on kasutamiseks valmis (nt saab kasutaja sisse logida)
# Süsteem on kasutamiseks valmis (nt saab kasutaja sisse logida) .
<br/>
<br/>


Init lugeb kataloogist "/etc/inittab" (või "/etc/init.d", oleneb mis linux distro teil on) and kasutab kataloogi sisu selleks, et luua teatavaid protsessid. Lisaks, on vaja meelis pidada, et init ei peata siis kui süsteem hakkaks töötama, vaid jätkub töötada ja dünamiiliselt käivitab protsessid, oleneb sellest mis signaalid talle saadakse. Süsteemi andministratoor võib muuta süsteemi protsessid (näiteks '''runlevel-id''') kasuga "telinit" või muuta konfig faile mis asuvad "/etc/init" kataloogis.
Init loeb kataloogist '''/etc/inittab''' (või '''/etc/init/rc-sysinit.conf''', oleneb mis linux distro teil on) ja kasutab kataloogi sisu selleks, et luua teatavaid protsesse vastavalt ''runlevel''-ile. Lisaks on vaja meeles pidada, et init ei peatu siis kui süsteem hakkas tööle, vaid jätkab tööt ja dünamiiliselt käivitab protsesse, sõltuvalt, mis signaalid talle saadetakse. Süsteemi andministrator võib muuta süsteemi protsesse (näiteks ''runlevel''-id) käsuga '''telinit''' või muuta ''config'' faile mis asuvad '''/etc/init''' kataloogis.


== Init runlevelid erinevates UNIXi süsteemides ==
== Init ''runlevel''-id erinevates UNIXi süsteemides ==


Üldiselt võib väita, et runlevlid erinevates linux distros on umbes samasugused, aga ikka mõned süsteemid (näiteks ubuntu) kasutavad enda versioonid.
Üldiselt võib väita, et ''runlevel''-id erinevates Linux distros on väga sarnased, aga mõned süsteemid (näiteks Ubuntu) kasutavad enda versiooni.


=== Runleveli ülevaade ===
== Runleveli ülevaade ==


Runlevel on tarkvaraline abivahend, mis rakendab Unix System V-Style initsialiseerimise. Runlevelid numbritatakse 0 kuni 6. Igal runlevelil on oma eesmärg ja Korraga võib olla ainult üks runlevel, ehk näiteks runlevel 2 VÕI 3 VÕI 4, mitte 2 SIIS/JA 3 SIIS/JA 4.  
''Runlevel'' on tarkvaraline abivahend, mis rakendab UNIX ''System V-Style'' paigaldamist. ''Runlevel''-id pannakse numbrid 0 kuni 6. Igal runlevel-il on oma eesmärk. Korraga võib töötada ainult üks ''runlevel'', näiteks runlevel 2 VÕI 3 VÕI 4.


<blockquote style="margin: 2em 2em 2em 0;">
<blockquote style="margin: 2em 2em 2em 0;">
Line 103: Line 107:
| Halt || shutdown
| Halt || shutdown
|-
|-
| Single-User Mode || Pole võrgu, ainult root kasutaja saab logida.
| Single-User Mode || Võrk puudub, ainult root kasutaja saab sisse logida.
|-
|-
| Multi-User mode || Pole võrgu, lubab kõikidele kasutajatele logida
| Multi-User mode || Võrk puudub, lubab kõikidele kasutajatele sisse logida.
|-
|-
| Multi-User mode with networking || Tavaline süsteemi käivitima
| Multi-User mode with networking || Tavaline süsteemi käivitamine koos võrguga.
|-
|-
| User-Defined || Kasutatakse  
| User-Defined || Kasutatakse spetsifilises olukorras, näiteks testimiseks.
|-
|-
| Full Multi-User Mode || Bootib kõik daemonid, GUI, GNOME/KDM. Kasutaja liides
| Full Multi-User Mode || ''Boot''-ib kõik daemonid (GUI, GNOME/KDM.
|-
|-
| Reboot || reboot
| Reboot || Taaskäivitab ehk teeb restarti.
|}
|}
</blockquote>
</blockquote>
Line 142: Line 146:
</blockquote>
</blockquote>


Runlevelid Ubuntus on erinevad. 2-5 on põhimõtteliselt samasugused runlevelid
''Runlevel''-id Ubuntus on erinevad. 2-5 on samasugused ''runlevel''-id


----
----
Line 171: Line 175:
</blockquote>
</blockquote>


 
----


=== SUSE Linux ===
=== SUSE Linux ===
Line 177: Line 181:
'''Distro:''' SUSE <br />
'''Distro:''' SUSE <br />


SUSE kasutab peaaegu samad runlevelid nagu Red Hat Fedora
SUSE kasutab peaaegu samad ''runlevel''-id nagu Red Hat Fedora


<blockquote style="margin: 2em 2em 2em 0;">
<blockquote style="margin: 2em 2em 2em 0;">
Line 204: Line 208:
== Init alternatiivid ==
== Init alternatiivid ==


On olemas mitu asendused et kuidas saab init rakendada. Siin on alltootud kõige tähtsamad ja vajalikud  
On olemas erinevaid alternatiive, et kuidas saab initit rakendada. Siin on toodud kõige tähtsamad ja vajalikud.
 


'''SystemStarter'''
'''SystemStarter'''


BSD-tüüpi protsesside alglaadur Mac OS X ja Mac OS X v10.4 op. süsteemidel.
BSD-tüüpi protsesside alglaadur Mac OS X ja Mac OS X v10.4 op. süsteemidel.
Line 216: Line 218:
'''launchd'''
'''launchd'''


Asendus mõelnud Mac OS X v10.4 jaoks.  
Rakendatakse Mac OS X v10.4 süsteemis.


----
----
Line 222: Line 224:
''' Initng '''  
''' Initng '''  


Täeilik initi asendus mis käivitab protsessid asünkroonselt.
Täeilik initi alternatiiv, mis käivitab protsessid asünkroonselt. Teoreetiselt peab kiirendama süsteemi kuna laseb mitu protsessi käivitada paraleelselt. Ei ole eriti veel tuntud, kuna antud projekt on veel ''beta'' faasis.


----
----
Line 228: Line 230:
''' Upstart '''
''' Upstart '''


Täeilik initi asendus mis käivitab protsessid asünkroonselt (Ubuntu põhimõtteliselt)
Täeilik initi alternatiiv, mis käivitab protsessid asünkroonselt (Ubuntu). See daemon võib käivitada, katkestada, boot-ida erinevaid teenused ja protsesse nagu tavaline init.


----
----
Line 234: Line 236:
''' Service Management Facility '''
''' Service Management Facility '''


Täeilik initi asendus (Solaris kuni Solaris 10 süsteemidel)
Täeilik initi alternatiiv (Solaris kuni Solaris 10 süsteemidel). Lubab käivitada protsesse paraleelselt.


----
----
Line 240: Line 242:
''' runit '''
''' runit '''


Asendus mis töötab erinevates UNIXi süsteemidel. Käivitab protsessid ja teenused paraleellselt.
Alternaativ, mis töötab erinevates UNIXi süsteemidel, näiteks GNU/Linux, *BSD, MacOSX, Solaris. Käivitab protsessid ja teenused paraleellselt.


----
----
Line 246: Line 248:
''' BootScripts '''
''' BootScripts '''


BootScripts initi asendus GoboLinuxis.
BootScripts on initi alternatiiv GoboLinuxis distros.


----
----


''' DEMONS '''
''' Mudur'''  


a modification of the init start process by KahelOS, where daemons are started only when the DE (desktop environment) started.
Initi alternatiiv, mis on programeeritud Python keeles. Käivitab protsesse asünkroonselt. Kasutatakse põhimõtteliselt Pardus Linuxis.


----
= Initi realiseerimine praktikas =


''' Mudur'''
Initil on väga palju erinevaid rakendus võimalusi. Init käsu abil saab erinevaid teenuseid käivitada või katkestada. Lisaks saab initi abil muuta runlevel-eid ning modifitseerida runleveli sisu (mis teenused/programmid antud runlevel käivitab).


an init replacement written in Python and designed to start process asynchronously in use by the Pardus Linux distribution.
<span style="color:RED"> Järgmised sammud puutuvad kokku süsteemi failidega, soovitavalt teha varukoopiat, et alati saaks muutusi tagastuda</span>


= Initi realiseerimine praktikas =
<pre>tar -cvf /root/backup_init.tar /etc/init.d/*</pre>
 
Initil on väga palju erinevaid võimalusi rakendada. Init käsuga abil saab erinevaid teenused käivitada või katkestada. Lisaks, initi abil saab muuta runlevelid ning modifitseerida runleveli sisu (mis teenused/programmid antud runlevel käivitab)


<u>Tulemus</u> Loob arhiivi "backup-init.tar" kataloogis root (/root). Arhiiv sisaldab kõiki init.d skripti.
== Runlevelid ==
== Runlevelid ==


Runlevel on üks kõige tähtsaim initi abivahend. Runlevel vastutab sellele, mis teenused käivitatakse siis kui arvuti hakkab töötama. Igal runlevelil on oma kataloog kus kõik teenused on olemas. Iga teenuse juures on täht "S" (start ehk teenus töötab) või "K" (kill ehk katkestab teenust/teenus ei tööta).
''Runlevel'' on üks kõige tähtsam initi abivahend. ''Runlevel'' vastutab selle eest, mis teenuseid käivitatakse siis kui arvuti hakkab tööle. Igal ''runlevel''-il on oma kataloog, kus kõik teenused asuvad. Iga teenuse juures on täht "S" (start ehk teenus töötab) või "K" (kill ehk katkestab teenuse töö).
   
   
=== Runleveli asukoht ===
=== Runleveli asukoht ===


Selleks on teada mis ''runlevel''-il on praegu teie masin töötab, kirjutage (töötab kõikides süsteemides)
Selleks on teada mis ''runlevel''-il on praegu teie masin töötab, kirjutage (töötab kõikides süsteemides).


<pre> runlevel </pre>
<pre>runlevel</pre>


Väljand on tavaliselt selline
Väljund on tavaliselt selline:


<pre> N X</pre>  
<pre>N X</pre>  


kus "X" on ''runlevel''-i ID (0, 1, 2...6)
kus "X" on ''runlevel''-i ID (0, 1, 2...6)
Line 283: Line 284:
Asukoht'''
Asukoht'''


''Runlevel''-id asuvad failisüsteemis, neid saab leita /etc kataloogis
''Runlevel''-id asuvad failisüsteemis, neid saab leita '''/etc''' kataloogis.


<pre> cd /etc/
<pre>  
ls -l
cd /etc/
ls | grep rc
</pre>
</pre>




*/etc/rc0.d on Run level 0 asukoht
*/etc/rc0.d on ''runlevel'' 0 asukoht
*/etc/rc1.d on Run level 1 asukoht
*/etc/rc1.d on ''runlevel'' 1 asukoht
*/etc/rc2.d on Run level 2 asukoht
*/etc/rc2.d on ''runlevel'' 2 asukoht
*/etc/rc3.d on Run level 3 asukoht
*/etc/rc3.d on ''runlevel'' 3 asukoht
*/etc/rc4.d on Run level 4 asukoht
*/etc/rc4.d on ''runlevel'' 4 asukoht
*/etc/rc5.d on Run level 5 asukoht
*/etc/rc5.d on ''runlevel'' 5 asukoht
*/etc/rc6.d on Run level 6 asukoht
*/etc/rc6.d on ''runlevel'' 6 asukoht
*/etc/rcS.d on ''runlevel'' S asukoht (SUSE)


Iga määratud ''runlevel'' peab sisaldama rcX.d kataloog, kus X on run leveli ID. rcX.d kataloogis näha mis teenused töötavad("S") ja mis seisavad ("K").  
Iga määratud ''runlevel'' peab sisaldama rcX.d kataloogi, kus X on ''runlevel''-i ID. rcX.d kataloogis saab näha, mis teenused töötavad("S") ja mis seisavad ("K").


'''Näiteks: '''
'''Näiteks: '''


Teie bootisite oma süsteemi ''runlevel''-is 2. ''Runlevel'' "2" käivitab kõike skripte kataloogis  /etc/rc2.d/
Teie bootisite oma süsteemi ''runlevel''-is 2. ''Runlevel'' "2" käivitab kõike skripte kataloogis  '''/etc/rc2.d/'''


<pre>
<pre>
cd /etc/rc2.d
cd /etc/rc2.d
ls -l
ls
</pre>  
</pre>  


Line 332: Line 335:
</pre>
</pre>


<u>Tulemus:</u> Muudab ''runlevel'' 2 (mis asub vastavalt kataloogis /etc/rc2.d) GNOME display manageri (gdm) nii, et järgmine kui süsteem käivitatakse, gdm teenus ei hakka töötama (ehk täht "K"). Lisaks, me muutsime sequence numbri (oli 30 nüüd 70) mis tähandab see, et teenused millel sequence number on vähem kui 70 bootitakse esmaselt.
<u>Tulemus:</u> Muudab ''runlevel'' 2 (mis asub vastavalt kataloogis '''/etc/rc2.d''') ''GNOME display manager''´-i (gdm) nii, et järgmine kord, kui süsteem käivitatakse, ''gdm'' teenus ei hakka tööle (ehk täht "K"). Lisaks me muutsime ''sequence numbri'' (oli 30 nüüd 70) mis tähandab seda, et teenused, mille ''sequence number'' on väiksem kui 70,'' boot''-itakse esmaselt.
 
The number is the order in which it should be started/stopped.
 
Have a look at the man page for update-rc.d which can be used to create/update/remove the init script symlinks for you.


=== ''Runlevel''-i asendus ===
=== ''Runlevel''-i asendus ===


On olemas GUI ehk graafiline rakendus, mille abil saab muuta ''runlevel''-i teenused. Rakenduse nimetus on Boot-Up manager (BUM)  
On olemas GUI ehk graafiline kasutajaliides, mille abil saab muuta ''runlevel''-i teenuseid. Selle rakenduse nimi on ''Boot-Up manager'' (BUM)


== Ubuntu ==
== Ubuntu ==


Kataloogis '''/etc/init''' hoiatatakse kõik init upstart konfigid asuvad.
Kataloogis '''/etc/init''' hoiatakse kõik init upstart config faile.


Kataloogis '''/etc/init.d''' asuvad SysV-init skriptid, need skriptid tavaliselt käivitavad igasuguseid teenused (services)
Kataloogis '''/etc/init.d''' asuvad SysV-init skriptid, mis käivitavad igasuguseid teenuseid (services).


Konfig failis '''/etc/init/rc-sysinit.conf''' saab käsiti muuta ''runlevel''-id.
Konfig failis '''/etc/init/rc-sysinit.conf''' conf saab käsitsi muuta ''runlevel''-eid.


=== Ubuntu bootimini erinevates režiimides ===
=== Ubuntu ''boot''-imini erinevates režiimides ===


On olemas 2 võimalust:  
On olemas 2 võimalust:  
Line 363: Line 362:
<pre> telinit 1 </pre>
<pre> telinit 1 </pre>


<u>Tulemus:</u> Taaskäivitab Ubuntu Single-Mode režiimis (ainult root kasutaja ja ilma GUIta)
<u>Tulemus:</u> Taaskäivitub Ubuntu Single-Mode režiimis (ainult root kasutaja ja ilma GUIta)
 
PS: Antud võimalus sobib nendele, kellel on tihti vaja kiiresti ühest ''runlevel''-ist teisele minna. Default (ehk vaikimisel) ''runlevel'' on ikka 2, mis tähendab see on kui masin sulgetatakse kinna ja bootitakse uuesti, ''runlevel'' on 2


PS: Antud võimalus sobib nendele, kellel on tihti vaja kiiresti ühest ''runlevel''-ist teisele üle minna. Vaikimisi on ''runlevel'' ikka 2, mis tähendab seda, et kui masin pannakse kinni ja ''boot''-itakse uuesti, on ''runlevel'' 2.
<br/>


<br/>
'''2) Config faile modifitseerimine'''
'''2) Konfig faile modifitseerimine'''


Enne konfig faile modifisteerimist, sooviks teha varukoopiat
Enne config faile muutmist, soovitan teha varukoopia:


<pre> cp /etc/init/rc-sysinit.conf /etc/init/rc-sysinitbackup.conf </pre>
<pre>cp /etc/init/rc-sysinit.conf /etc/init/rc-sysinitbackup.conf</pre>


Konfig fail asub kataloogis
''Config fail'' asub kataloogis:


<pre>/etc/init</pre>
<pre>/etc/init</pre>


Modifisteerimiseks sobib Nano tekstiredaktor
Modifisteerimiseks sobib Nano tekstiredaktor.


<pre>sudo gedit /etc/init/rc-sysinit.conf</pre>
<pre>sudo nano /etc/init/rc-sysinit.conf</pre>


Leia antud read
Leia järgmised read:


<pre># Default runlevel, this may be overriden on the kernel command-line<br/>
<pre># Default runlevel, this may be overriden on the kernel command-line<br/>
Line 399: Line 397:
=== Teenuste käivitamine, katkestamine või taaskäivitamine ===
=== Teenuste käivitamine, katkestamine või taaskäivitamine ===


Kataloogis /'''etc/init.d''' asuvad kõik teenused
Kataloogis '''/etc/init.d''' asuvad kõik teenused:


<pre> ls /etc/init.d </pre>


'''Kasutamine'''
'''Kasutamine'''


Selleks on rakendada teenused init.d kataloogis, on olemas selline käsk
Selleks on rakendada teenuseid init.d kataloogis, on olemas selline käsk:


<pre>
<pre>
Line 417: Line 416:
! OPTION !! Selgitus
! OPTION !! Selgitus
|-b kõike t
|-b kõike t
|''' start'''  || Käivitab teenust
|''' status'''  || Näitab teenuse olukorda.
|-
|''' start'''  || Käivitab teenuse.
|-
|-
| '''stop'''  || Peatab
| '''stop'''  || Peatab teenuse.
|-
|-
| '''restart'''  || Peatab teenust ja laadib uue konfiguratsiooni
| '''restart'''  || Peatab teenuse ja laadib uue konfiguratsiooni-
|-
|-
| '''reload'''  || Peatab
| '''reload'''  || Laadib uue konfiguratsiooni.
|-
|-
| '''force-reload''' || Katkestab kõike teenusi ja laddib uue konfiguratsiooni
| '''force-reload''' || Katkestab kõike teenusi ja laadib uue konfiguratsiooni.
|}
|}
</blockquote>
</blockquote>
Line 441: Line 442:
sudo /etc/initi.d/networking restart
sudo /etc/initi.d/networking restart
</pre>
</pre>
<u>Tulemus:</u> Taaskäivitab võrguühendust.
<u>Tulemus:</u>Taaskäivitub võrguühendust.


või
või
Line 448: Line 449:
sudo /etc/initi.d/apache2 reload
sudo /etc/initi.d/apache2 reload
</pre>
</pre>
<u>Tulemus:</u>  Taaskäivitab ''apache2''  
<u>Tulemus:</u>  Taaskäivitub ''apache2''  
 
Kõige tihtsam vajalikud ja kasutavam teenused init.d kataloogis on


Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad '''/etc/init.d''' kataloogis


# networking
# networking
Line 462: Line 462:


== Fedora ==
== Fedora ==
Kataloogis '''/etc/init'''  hoiatakse kõik init upstart config faile.
Kataloogis '''/etc/init.d''' asuvad  SysV-init skriptid, mis käivitavad igasuguseid teenuseid (services).
Konfig failis '''/etc/inittab''' saab käsitsi muuta ''runlevel''-eid.


=== Fedora bootimini erinevates režiimides ===
=== Fedora bootimini erinevates režiimides ===
Line 474: Line 481:
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks


<pre> telinit 1 </pre>
<pre> telinit 6</pre>
 
<u>Tulemus:</u> Taaskäivitub Fedora-t.
 
<br/>


<u>Tulemus:</u> Taaskäivitab Ubuntu Single-Mode režiimis (ainult root kasutaja ja ilma GUIta)
või


PS: Antud võimalus sobib nendele, kellel on tihti vaja kiiresti ühest ''runlevel''-ist teisele minna. Default (ehk vaikimisel) ''runlevel'' on ikka 1, mis tähendab see on kui masin sulgetatakse kinna ja bootitakse uuesti, ''runlevel'' on 1.
<pre> telinit 0 </pre>


<u>Tulemus:</u> Paneb kinni.


<br/>
<br/>
Line 490: Line 502:
ls | grep inittab</pre>
ls | grep inittab</pre>


Modifisteerimiseks sobib Nano tekstiredaktor
Modifisteerimiseks sobib Nano tekstiredaktor:


<pre>su nano /etc/inittab</pre>
<pre>su nano /etc/inittab</pre>
Line 508: Line 520:
Kataloogis /'''etc/init.d''' asuvad kõik teenused
Kataloogis /'''etc/init.d''' asuvad kõik teenused


<pre>ls /etc/init.d </pre>


'''Kasutamine'''
'''Kasutamine'''
Line 524: Line 537:
! OPTION !! Selgitus
! OPTION !! Selgitus
|-b kõike t
|-b kõike t
|''' status'''  || Näitab teenuse olukoora
|''' status'''  || Näitab teenuse olukorda.
|-
|-
|''' start'''  || Käivitab teenust
|''' start'''  || Käivitab teenuse.
|-
|-
| '''stop'''  || Peatab
| '''stop'''  || Peatab teenuse.
|-
|-
| '''restart'''  || Peatab teenust ja laadib uue konfiguratsiooni
| '''restart'''  || Peatab teenuse ja laadib uue konfiguratsiooni-
|-
|-
| '''reload'''  || Peatab
| '''reload'''  || Laadib uue konfiguratsiooni.
|-
|-
| '''force-reload''' || Katkestab kõike teenusi ja laddib uue konfiguratsiooni
| '''force-reload''' || Katkestab kõike teenusi ja laadib uue konfiguratsiooni.
|}
|}
</blockquote>
</blockquote>
Line 540: Line 553:
Näiteks
Näiteks


<pre>
<pre> sudo /etc/init.d/smb restart
sudo /etc/init.d/smb restart
Shutting down SMB services:                                [  OK  ]
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                    [  OK  ]
Starting SMB services:                                    [  OK  ]
</pre>
</pre>


<u>Tulemus:</u> Taaskäivitab ''samba''-t
<u>Tulemus:</u> Taaskäivitab samba-t


või
või
Line 554: Line 566:
Starting SMB services:                                    [  OK  ]
Starting SMB services:                                    [  OK  ]
</pre>
</pre>
<u>Tulemus:</u>  Käivitame samba-t


<u>Tulemus:</u> Käivitame ''samba''-t
Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad '''/etc/init.d''' kataloogis  
 
Kõige tihtsam vajalikud ja kasutavam teenused init.d kataloogis on
 


# networking
# networking
Line 568: Line 578:
# mysql
# mysql


== OpenSUSE ==
== SUSE Linux ==


/etc/init.d/
=== SUSE bootimini erinevates režiimides ===
=== Fedora bootimini erinevates režiimides ===


On olemas 2 võimalust:  
On olemas 2 võimalust:  
Line 582: Line 591:
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks


<pre> telinit 1 </pre>
<pre> telinit 6</pre>
 
<u>Tulemus:</u> Taaskäivitub SUSE Linux.
 
<br/>


<u>Tulemus:</u> Taaskäivitab Ubuntu Single-Mode režiimis (ainult root kasutaja ja ilma GUIta)
või


PS: Antud võimalus sobib nendele, kellel on tihti vaja kiiresti ühest ''runlevel''-ist teisele minna. Default (ehk vaikimisel) ''runlevel'' on ikka 1, mis tähendab see on kui masin sulgetatakse kinna ja bootitakse uuesti, ''runlevel'' on 1.
<pre> telinit 5 </pre>


<u>Tulemus:</u> Käivatab SUSE ''Multi-User mode with display manager'' režiimis (ehk ''runlevel'' 5) .


<br/>
<br/>
Line 598: Line 612:
ls | grep inittab</pre>
ls | grep inittab</pre>


Modifisteerimiseks sobib Nano tekstiredaktor
Modifisteerimiseks sobib Nano tekstiredaktor:


<pre>su nano /etc/inittab</pre>
<pre>su nano /etc/inittab</pre>
Line 611: Line 625:


Salvestage ja järgmine kui käivitate masinat, linux bootitakse Multi-user mode console ''runlevel''-is, ehk ''runlevel'' 2 ID.
Salvestage ja järgmine kui käivitate masinat, linux bootitakse Multi-user mode console ''runlevel''-is, ehk ''runlevel'' 2 ID.
=== Teenuste käivitamine, katkestamine või taaskäivitamine ===
Kataloogis /'''etc/init.d''' asuvad kõik teenused
<pre>ls /etc/init.d </pre>
'''Kasutamine'''
Selleks on rakendada teenused init.d kataloogis, on olemas selline käsk
<pre>
sudo /etc/initi.d/command OPTION
</pre>
Kus <span style="color:RED">OPTION</span> võib olla järgmine:
<blockquote style="margin: 2em 2em 2em 0;">
{| class="wikitable" style="text-align:left; padding: 1em; border: 1px #aaa solid; background: #f9f9f9;"
|-style="background: #e2e2e2;"
! OPTION !! Selgitus
|-b kõike t
|''' status'''  || Näitab teenuse olukorda.
|-
|''' start'''  || Käivitab teenuse.
|-
| '''stop'''  || Peatab teenuse.
|-
| '''restart'''  || Peatab teenuse ja laadib uue konfiguratsiooni-
|-
| '''reload'''  || Laadib uue konfiguratsiooni.
|-
| '''force-reload''' || Katkestab kõike teenusi ja laadib uue konfiguratsiooni.
|}
</blockquote>
Näiteks
<pre>
linuxdesk:~ # /etc/init.d/nfs stop
Shutting down NFS client services: idmapd                                                                                                        done
</pre>
<u>Tulemus:</u> Peatub NFS.
või
<pre>
linuxdesk:~ # /etc/init.d/nfs start
Starting NFS client services: sm-notify idmapd                                                                                                    done
</pre>
<u>Tulemus:</u> Käivitab NFS.
või
<pre>
linuxdesk:~ # /etc/init.d/nfs restart
Shutting down NFS client services: idmapd                                                                                                        done
Starting NFS client services: sm-notify idmapd
</pre>
<u>Tulemus:</u> Taaskäivitub NFS.
Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad '''/etc/init.d''' kataloogis
# networking
# samba
# apache2
# ftpd
# sshd
# dovecot
# mysql
# NFS (network file system)
= initscript probleemide lahendamine =
Juhul kui init.d kataloog või muud vajalikud init konfigid või skriptid olid kogemata kustutanud, neid võib tagasi saata käsuga:
== Ubuntu ==
<pre>sudo apt-get install --reinstall initscripts</pre>
== Fedora & Red Hat ==
<pre>yum reinstall initscripts</pre>
= Kokkuvõtte =
Kokkuvõtteks saan öelda, et init on väga vajalik protsess. Init laseb muuta süsteemi vastavalt vajadusele. Praktiline realiseerimine init-i skripte on väga lihtne.


= Kasutatud materjaalid =
= Kasutatud materjaalid =
Line 616: Line 717:
== Veebipõhised allikad ==
== Veebipõhised allikad ==


*http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/
*[http://www.linux.com/archive/feature/114107 An introduction to services, runlevels, and rc.d scripts]
*http://en.wikipedia.org/wiki/Init
*[http://linux.about.com/od/commands/l/blcmdl8_init.htm/ Linux / Unix Command: init]
*http://www.linux.com/archive/feature/114107
*[http://www.linuxquestions.org/questions/ubuntu-63/since-we-have-no-etc-inittab-506281 Since we have no /etc/inittab]
*http://linux.about.com/od/commands/l/blcmdl8_init.htm
*[http://upstart.ubuntu.com UpStart overview.]
*http://www.linux.com/news/enterprise/systems-management/8116-an-introduction-to-services-runlevels-and-rcd-scripts
*[http://upstart.ubuntu.com/faq.html UpStart FAQ]
*http://man.he.net/man8/init
*[https://help.ubuntu.com/community/UbuntuBootupHowto UbuntuBoot: How to]
*http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html
*[https://help.ubuntu.com/community/InitScriptList Init script list]
*http://www.erlang.org/doc/man/init.html
*[http://www.ghacks.net/2009/04/04/get-to-know-linux-the-etcinitd-directory/ Get To Know Linux: The /etc/init.d Directory]
*https://help.ubuntu.com/community/UbuntuBootupHowto
*[http://en.wikipedia.org/wiki/Init Wikipedia: init]
*http://upstart.ubuntu.com/
*[http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html YoLinux.com: Linux Init Process / PC Boot Procedure]
*http://upstart.ubuntu.com/faq.html
*[http://www.erlang.org/doc/man/init.html Using init in programming languages: ERLANG.]
*http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html
*[http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html Linux Init and System Initialization]
*http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_Linux
*[http://kuutorvaja.eenet.ee/wiki/Debiani_alglaadimine Debiani alglaadimine]
*http://citforum.ru/operating_systems/manpages/INIT.1.shtml
*[http://www.cyberciti.biz/howto/question/linux/unix-linux-find-out-runlevel.php How do I find out runlevel of unix or Linux system?]
*http://www.linuxquestions.org/questions/ubuntu-63/since-we-have-no-etc-inittab-506281/
*[http://osr507doc.sco.com/en/OSAdminG/sstT.chg_inittab.html Changing the /etc/inittab file]
*http://kuutorvaja.eenet.ee/wiki/Debiani_alglaadimine
*[http://www.debian-administration.org/article/212/An_introduction_to_run-levels An introduction to run-levels]
*https://help.ubuntu.com/community/InitScriptList
*[http://www-uxsup.csx.cam.ac.uk/pub/doc/suse/suse9.3/suselinux-adminguide_en/sec.boot.init.skripte.html Booting and Configuring a Linux System / 7.5. Init Scripts]
*http://www.cyberciti.biz/howto/question/linux/unix-linux-find-out-runlevel.php
*http://osr507doc.sco.com/en/OSAdminG/sstT.chg_inittab.html
*http://ubuntuforums.org/showthread.php?t=620327 Kuhu kadus inittab? (Ubuntu)
*http://www.debian-administration.org/article/212/An_introduction_to_run-levels


== Video näided ==  
== Video näided ==  


*http://www.youtube.com/watch?v=OcX7FaTAFV4 - hea ja väga põhjalik inglise-keelne ülevaade kõikidest runlevel-idest Ubuntu
[http://www.youtube.com/watch?v=OcX7FaTAFV4 Linux Run Levels (Part 1 of 2) - Ubuntu] <br/>
*http://www.youtube.com/watch?v=1YlPFMqhiZg - hea ja väga põhjalik inglise-keelne ülevaade kõikidest runlevel-idest Red Hat/Fedora
[http://www.youtube.com/watch?v=1YlPFMqhiZg Linux Run Levels (Part 2 of 2) - Red Hat and Fedora]


== Kategooria raames ==


[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]]

Latest revision as of 12:13, 13 October 2017

Artikli autor ja logi

Nimi: Vladimir Kolesnik
Grupp: A22
Viimati muudetud: 26.05.2011

Versioon Lisatud   Kommentaar
0.1 5.04.2011     Artikli loomine.
0.2 14.04.2011     Sissejuhatus, lingid, sisu, tabelid.
0.3 15.04.2011     Sisukord, runlevelid.
0.4 16.04.2011     Teenused, käsud.
0.5 17.04.2011     Artikli täiendamine.
0.6 19.04.2011     Artikli täiendamine, kokkuvõtte.
1.0 20.04.2011     Valmis.
1.1 10.05.2011     Artikli täiendamine. Varukoopia, backup
1.2 16.05.2011     Artikli nõuded
1.5 26.05.2011     Gramaatilised vead

Sissejuhatus

Init on kõige olulisem protsess, mis laeb kõiki teisi protsesse. Init võimaldab käivitada teie süsteemi erinevates režimiides, laseb muuta startup config faili, lubab käivitada teenuseid või neid katkestada. Init eksisteerib kõikides Linuxi süsteemides.

Artikli eesmärk

  1. Tutvustada lugejale Linuxi boot protsessi.
  2. Anda ülevaade Init konfigureerimisest.
  3. Anda ülevaade runlevel-ist UNIXi süsteemides.
  4. Käsuga init on võimalik käivitada ja katkestada järgmiseid teenused: Network, Apache, Mysql ja teised.

Artikli sisu

Artikel on jagatud kaheks osaks. Esimene osa on teoreetiline, mis sisaldab põhimõisteid, üldist informatsiooni, runlevel-i ülevaade.

Teine osa on praktiline, kus saab rakendada ja käivitada erinevaid init runlevel-eid, erinevatel Linuxi süsteemidel (Ubuntu, FedoraCore ja SUSE).

Artikli vajalikkus

Vahel on vaja kiiresti teenuseid käivitada, näiteks Apache või MySQL. Mõnikord hakkavad mingid teenused ise tööle, isegi kui teie ei ole neid käivitanud. On olemas sellised protsessid ja teenused, mis automaatselt käivitatakse Linuxi boot-imisel ja kui tahta neid protsesse eemaldada või muuta, siis kõige selle jaoks on UNIXi maailmas olemas /etc/init kataloog, kus hoitakse startup config faili ja seda saab korrigeerida vastavalt vajadusele.

Artikkel on kasulik ja vajalik neile, kes tahavad rohkem teada saada, kuidas saab kontrollida kõiki teenuseid, mis on paigaldatud teie masinasse. Lisaks annab artikkel juhendeid, kuidas saab käivitada Linuxi distrot erinevates režiimides ja runlevel-ites.

Artikli nõuded

Initi rakendamiseks kasutajal peavad olema administraatori õigused.

Init eksisteerib kõikidel Linux distrodel, seetõttu mingid lisavahendeid või rakendusi pole vaja installeerida. Kasuks tuleb CLI (ehk terminali) teadmine.

PS: Kuna tegu on Linuxi startup-iga ja üldiselt väga tähtsa protsessiga, on mõistlikum esiteks proovida oma oskusi virtuaal masinas. Soovitavalt teha ka varukoopiat enne konfig faili modifitseerimist

Teoreetiline osa

Teoreetilises osas vaatame põhimõisteid, initi informatsioon ja ülevaated erinevatest init olemusest.

Üldine ülevaade

Init (ehk initialization) on rakendus, mis on mõeldud UNIX süsteemidele, mis käivitab kõiki teisi protsesse. Igal UNIX operatsioonsüsteemil on init config natukene erinev, aga üldiselt saab öelda, et tegu on runlevel-itega. Igal runlevel-il on oma PID ehk number, mis vastutab operatsioonsüsteemi käivitamise eest.

Erinevates Linuxi derivatiivides on sisseehitatud oma rakendus, mis rakendab initi funktsionaalsust. Enamus Linuxi distroid kasutavad selle jaoks System V-d, aga on olemas ka teisi programme, näiteks Ubuntu kasutab Upstart.

Teiste sõnadega, init on kõige olulisem protsess, mis laseb kogu süsteemil töötada.

Kuidas töötab init

Selleks, et aru saada, kuidas töötab init ja kuidas saab seda rakendada, on vaja teada, kuidas üldse toimub süsteemi käivitamine (ehk boot-imine) Linuxis.

Laadimise põhietapid

  1. Toite sisselülitamise järel omandab kontrolli püsimälus olev firmware (PC puhul BIOS).
  2. BIOS laeb ja käivitab alglaaduri (nt GRUB - GRand Unified Bootloader, LILO või Loadlin).
  3. Alglaadur laeb tuuma ja initrd/initramfs'i (initial ramdisk/initial ram file system).
  4. Alglaadur käivitab tuuma ning operatsioonisüsteemi käivitamiseks olulised seadmed initsialiseeritakse initramfs'is asuvate programmide abil.
  5. Initramfs annab oma töö lõpus juhtimise üle operatsioonisüsteemi programmile init.
  6. Operatsioonisüsteemi init käivitab protsessid.
  7. Süsteem on kasutamiseks valmis (nt saab kasutaja sisse logida) .


Init loeb kataloogist /etc/inittab (või /etc/init/rc-sysinit.conf, oleneb mis linux distro teil on) ja kasutab kataloogi sisu selleks, et luua teatavaid protsesse vastavalt runlevel-ile. Lisaks on vaja meeles pidada, et init ei peatu siis kui süsteem hakkas tööle, vaid jätkab tööt ja dünamiiliselt käivitab protsesse, sõltuvalt, mis signaalid talle saadetakse. Süsteemi andministrator võib muuta süsteemi protsesse (näiteks runlevel-id) käsuga telinit või muuta config faile mis asuvad /etc/init kataloogis.

Init runlevel-id erinevates UNIXi süsteemides

Üldiselt võib väita, et runlevel-id erinevates Linux distros on väga sarnased, aga mõned süsteemid (näiteks Ubuntu) kasutavad enda versiooni.

Runleveli ülevaade

Runlevel on tarkvaraline abivahend, mis rakendab UNIX System V-Style paigaldamist. Runlevel-id pannakse numbrid 0 kuni 6. Igal runlevel-il on oma eesmärk. Korraga võib töötada ainult üks runlevel, näiteks runlevel 2 VÕI 3 VÕI 4.

Runlevel Selgitus
Halt shutdown
Single-User Mode Võrk puudub, ainult root kasutaja saab sisse logida.
Multi-User mode Võrk puudub, lubab kõikidele kasutajatele sisse logida.
Multi-User mode with networking Tavaline süsteemi käivitamine koos võrguga.
User-Defined Kasutatakse spetsifilises olukorras, näiteks testimiseks.
Full Multi-User Mode Boot-ib kõik daemonid (GUI, GNOME/KDM.
Reboot Taaskäivitab ehk teeb restarti.

Ubuntu

Distro: alates 6.10

Runlevel ID Selgitus
0 halt
1 Single-User Mode
2 Full Multi-User Mode (default runlevel Ubuntus)
3 Full Multi-User Mode
4 Full Multi-User Mode
5 Full Multi-User Mode
6 Reboot

Runlevel-id Ubuntus on erinevad. 2-5 on samasugused runlevel-id


Red Hat Linux / Fedora Core

Distro: Fedora 14

Runlevel ID Selgitus
0 halt
1 Single-User mode
2 Multi-user mode console logins only (without networking)
3 Multi-User mode, console logins only
4 Not used/User-definable
5 Multi-User mode, with display manager as well as console logins (X11)
6 Reboot

SUSE Linux

Distro: SUSE

SUSE kasutab peaaegu samad runlevel-id nagu Red Hat Fedora

Runlevel ID Selgitus
0 Halt
1 Singl-User mode
2 Multi-User mode, without networking
3 Multi-User mode, console logins only
4 Not used/User-definable
5 Multi-User mode with display manager
6 Reboot
S single-User mode[6]

Init alternatiivid

On olemas erinevaid alternatiive, et kuidas saab initit rakendada. Siin on toodud kõige tähtsamad ja vajalikud.

SystemStarter

BSD-tüüpi protsesside alglaadur Mac OS X ja Mac OS X v10.4 op. süsteemidel.


launchd

Rakendatakse Mac OS X v10.4 süsteemis.


Initng

Täeilik initi alternatiiv, mis käivitab protsessid asünkroonselt. Teoreetiselt peab kiirendama süsteemi kuna laseb mitu protsessi käivitada paraleelselt. Ei ole eriti veel tuntud, kuna antud projekt on veel beta faasis.


Upstart

Täeilik initi alternatiiv, mis käivitab protsessid asünkroonselt (Ubuntu). See daemon võib käivitada, katkestada, boot-ida erinevaid teenused ja protsesse nagu tavaline init.


Service Management Facility

Täeilik initi alternatiiv (Solaris kuni Solaris 10 süsteemidel). Lubab käivitada protsesse paraleelselt.


runit

Alternaativ, mis töötab erinevates UNIXi süsteemidel, näiteks GNU/Linux, *BSD, MacOSX, Solaris. Käivitab protsessid ja teenused paraleellselt.


BootScripts

BootScripts on initi alternatiiv GoboLinuxis distros.


Mudur

Initi alternatiiv, mis on programeeritud Python keeles. Käivitab protsesse asünkroonselt. Kasutatakse põhimõtteliselt Pardus Linuxis.

Initi realiseerimine praktikas

Initil on väga palju erinevaid rakendus võimalusi. Init käsu abil saab erinevaid teenuseid käivitada või katkestada. Lisaks saab initi abil muuta runlevel-eid ning modifitseerida runleveli sisu (mis teenused/programmid antud runlevel käivitab).

Järgmised sammud puutuvad kokku süsteemi failidega, soovitavalt teha varukoopiat, et alati saaks muutusi tagastuda

tar -cvf /root/backup_init.tar /etc/init.d/*

Tulemus Loob arhiivi "backup-init.tar" kataloogis root (/root). Arhiiv sisaldab kõiki init.d skripti.

Runlevelid

Runlevel on üks kõige tähtsam initi abivahend. Runlevel vastutab selle eest, mis teenuseid käivitatakse siis kui arvuti hakkab tööle. Igal runlevel-il on oma kataloog, kus kõik teenused asuvad. Iga teenuse juures on täht "S" (start ehk teenus töötab) või "K" (kill ehk katkestab teenuse töö).

Runleveli asukoht

Selleks on teada mis runlevel-il on praegu teie masin töötab, kirjutage (töötab kõikides süsteemides).

runlevel

Väljund on tavaliselt selline:

N X

kus "X" on runlevel-i ID (0, 1, 2...6)

Asukoht

Runlevel-id asuvad failisüsteemis, neid saab leita /etc kataloogis.

 
cd /etc/
ls | grep rc


  • /etc/rc0.d on runlevel 0 asukoht
  • /etc/rc1.d on runlevel 1 asukoht
  • /etc/rc2.d on runlevel 2 asukoht
  • /etc/rc3.d on runlevel 3 asukoht
  • /etc/rc4.d on runlevel 4 asukoht
  • /etc/rc5.d on runlevel 5 asukoht
  • /etc/rc6.d on runlevel 6 asukoht
  • /etc/rcS.d on runlevel S asukoht (SUSE)

Iga määratud runlevel peab sisaldama rcX.d kataloogi, kus X on runlevel-i ID. rcX.d kataloogis saab näha, mis teenused töötavad("S") ja mis seisavad ("K").

Näiteks:

Teie bootisite oma süsteemi runlevel-is 2. Runlevel "2" käivitab kõike skripte kataloogis /etc/rc2.d/

cd /etc/rc2.d
ls

Väljundiseks saate tavaliselt järgmised teenues:


README                S20vboxweb-service  S70dns-clean       S99acpi-support
S20fancontrol         S25bluetooth        S70pppd-dns        S99grub-common
S20kerneloops         S50pulseaudio       S75sudo            S99ondemand
S20speech-dispatcher  S50rsync            S90binfmt-support  S99rc.local
S20vboxdrv            S50saned            S91apache2

Iga teenus hakkab tähest "S"(start) või "K" (kill). Teenused mis algavad tähast "S" bootitakse kui süsteem hakkab käima.

Lisaks, iga teenus /etc/rcX.d kataloogis on seotud symlinkiga skriptitega mis asuvad /etc/init.d kataloogis.

Selleks, et muuta teenused rcX.d kataloogis, piisab ainult muuta esimene täht ja sequence number (kahe-kohaline number).

Näiteks:

cd /etc/rc2.d/
rename /etc/rc2.d/S30gdm /etc/rc2.d/K70gdm

Tulemus: Muudab runlevel 2 (mis asub vastavalt kataloogis /etc/rc2.d) GNOME display manager´-i (gdm) nii, et järgmine kord, kui süsteem käivitatakse, gdm teenus ei hakka tööle (ehk täht "K"). Lisaks me muutsime sequence numbri (oli 30 nüüd 70) mis tähandab seda, et teenused, mille sequence number on väiksem kui 70, boot-itakse esmaselt.

Runlevel-i asendus

On olemas GUI ehk graafiline kasutajaliides, mille abil saab muuta runlevel-i teenuseid. Selle rakenduse nimi on Boot-Up manager (BUM)

Ubuntu

Kataloogis /etc/init hoiatakse kõik init upstart config faile.

Kataloogis /etc/init.d asuvad SysV-init skriptid, mis käivitavad igasuguseid teenuseid (services).

Konfig failis /etc/init/rc-sysinit.conf conf saab käsitsi muuta runlevel-eid.

Ubuntu boot-imini erinevates režiimides

On olemas 2 võimalust:


1) Käsuga telinit

 telinit X 

kus X on runlevel-i ID (0-6). Näiteks

 telinit 1 

Tulemus: Taaskäivitub Ubuntu Single-Mode režiimis (ainult root kasutaja ja ilma GUIta)

PS: Antud võimalus sobib nendele, kellel on tihti vaja kiiresti ühest runlevel-ist teisele üle minna. Vaikimisi on runlevel ikka 2, mis tähendab seda, et kui masin pannakse kinni ja boot-itakse uuesti, on runlevel 2.

2) Config faile modifitseerimine

Enne config faile muutmist, soovitan teha varukoopia:

cp /etc/init/rc-sysinit.conf /etc/init/rc-sysinitbackup.conf

Config fail asub kataloogis:

/etc/init

Modifisteerimiseks sobib Nano tekstiredaktor.

sudo nano /etc/init/rc-sysinit.conf

Leia järgmised read:

# Default runlevel, this may be overriden on the kernel command-line<br/>
# or by faking an old /etc/inittab entry <br/>
env DEFAULT_RUNLEVEL=X 

kus X on runlevel-i ID (0-6). Näiteks:

# Default runlevel, this may be overriden on the kernel command-line<br/>
# or by faking an old /etc/inittab entry <br/>
env DEFAULT_RUNLEVEL=1

Salvestage ja järgmine kui käivitate masinat, linux bootitakse Single-Mode runlevel-is, ehk 1 runlevel ID.

Teenuste käivitamine, katkestamine või taaskäivitamine

Kataloogis /etc/init.d asuvad kõik teenused:

 ls /etc/init.d 

Kasutamine

Selleks on rakendada teenuseid init.d kataloogis, on olemas selline käsk:

sudo /etc/initi.d/command OPTION

Kus OPTION võib olla järgmine:

OPTION Selgitus
status Näitab teenuse olukorda.
start Käivitab teenuse.
stop Peatab teenuse.
restart Peatab teenuse ja laadib uue konfiguratsiooni-
reload Laadib uue konfiguratsiooni.
force-reload Katkestab kõike teenusi ja laadib uue konfiguratsiooni.

Näiteks

sudo /etc/initi.d/networking stop

Tulemus: Katkestab võrguühendust.

või

sudo /etc/initi.d/networking restart

Tulemus:Taaskäivitub võrguühendust.

või

sudo /etc/initi.d/apache2 reload

Tulemus: Taaskäivitub apache2

Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad /etc/init.d kataloogis

  1. networking
  2. samba
  3. apache2
  4. ftpd
  5. sshd
  6. dovecot
  7. mysql

Fedora

Kataloogis /etc/init hoiatakse kõik init upstart config faile.

Kataloogis /etc/init.d asuvad SysV-init skriptid, mis käivitavad igasuguseid teenuseid (services).

Konfig failis /etc/inittab saab käsitsi muuta runlevel-eid.


Fedora bootimini erinevates režiimides

On olemas 2 võimalust:


1) Käsuga telinit

 telinit X 

kus X on runlevel-i ID (0-6). Näiteks

 telinit 6

Tulemus: Taaskäivitub Fedora-t.


või

 telinit 0 

Tulemus: Paneb kinni.


2) Inittab modifitseerimine

Inittab on runlevel-i alglaadur. Asub/etc/ kataloogis

cd /etc
ls | grep inittab

Modifisteerimiseks sobib Nano tekstiredaktor:

su nano /etc/inittab

Kõige viimane rida:

id:X:initdefault:

kus X on runleveli ID (0-6). Näiteks:

id:2:initdefault:

Salvestage ja järgmine kui käivitate masinat, linux bootitakse Multi-user mode console runlevel-is, ehk runlevel 2 ID.

Teenuste käivitamine, katkestamine või taaskäivitamine

Kataloogis /etc/init.d asuvad kõik teenused

ls /etc/init.d 

Kasutamine

Selleks on rakendada teenused init.d kataloogis, on olemas selline käsk

sudo /etc/initi.d/command OPTION

Kus OPTION võib olla järgmine:

OPTION Selgitus
status Näitab teenuse olukorda.
start Käivitab teenuse.
stop Peatab teenuse.
restart Peatab teenuse ja laadib uue konfiguratsiooni-
reload Laadib uue konfiguratsiooni.
force-reload Katkestab kõike teenusi ja laadib uue konfiguratsiooni.

Näiteks

 sudo /etc/init.d/smb restart
Shutting down SMB services:                                [  OK  ]
Starting SMB services:                                     [  OK  ]

Tulemus: Taaskäivitab samba-t

või

sudo /etc/init.d/smb start
Starting SMB services:                                     [  OK  ]

Tulemus: Käivitame samba-t

Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad /etc/init.d kataloogis

  1. networking
  2. samba
  3. apache2
  4. ftpd
  5. sshd
  6. dovecot
  7. mysql

SUSE Linux

SUSE bootimini erinevates režiimides

On olemas 2 võimalust:


1) Käsuga telinit

 telinit X 

kus X on runlevel-i ID (0-6). Näiteks

 telinit 6

Tulemus: Taaskäivitub SUSE Linux.


või

 telinit 5 

Tulemus: Käivatab SUSE Multi-User mode with display manager režiimis (ehk runlevel 5) .


2) Inittab modifitseerimine

Inittab on runlevel-i alglaadur. Asub/etc/ kataloogis

cd /etc
ls | grep inittab

Modifisteerimiseks sobib Nano tekstiredaktor:

su nano /etc/inittab

Kõige viimane rida:

id:X:initdefault:

kus X on runleveli ID (0-6). Näiteks:

id:2:initdefault:

Salvestage ja järgmine kui käivitate masinat, linux bootitakse Multi-user mode console runlevel-is, ehk runlevel 2 ID.

Teenuste käivitamine, katkestamine või taaskäivitamine

Kataloogis /etc/init.d asuvad kõik teenused

ls /etc/init.d 

Kasutamine

Selleks on rakendada teenused init.d kataloogis, on olemas selline käsk

sudo /etc/initi.d/command OPTION

Kus OPTION võib olla järgmine:

OPTION Selgitus
status Näitab teenuse olukorda.
start Käivitab teenuse.
stop Peatab teenuse.
restart Peatab teenuse ja laadib uue konfiguratsiooni-
reload Laadib uue konfiguratsiooni.
force-reload Katkestab kõike teenusi ja laadib uue konfiguratsiooni.


Näiteks

linuxdesk:~ # /etc/init.d/nfs stop
Shutting down NFS client services: idmapd                                                                                                         done

Tulemus: Peatub NFS.

või

linuxdesk:~ # /etc/init.d/nfs start
Starting NFS client services: sm-notify idmapd                                                                                                    done

Tulemus: Käivitab NFS.

või

linuxdesk:~ # /etc/init.d/nfs restart
Shutting down NFS client services: idmapd                                                                                                         done
Starting NFS client services: sm-notify idmapd

Tulemus: Taaskäivitub NFS.

Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad /etc/init.d kataloogis

  1. networking
  2. samba
  3. apache2
  4. ftpd
  5. sshd
  6. dovecot
  7. mysql
  8. NFS (network file system)

initscript probleemide lahendamine

Juhul kui init.d kataloog või muud vajalikud init konfigid või skriptid olid kogemata kustutanud, neid võib tagasi saata käsuga:

Ubuntu

sudo apt-get install --reinstall initscripts

Fedora & Red Hat

yum reinstall initscripts

Kokkuvõtte

Kokkuvõtteks saan öelda, et init on väga vajalik protsess. Init laseb muuta süsteemi vastavalt vajadusele. Praktiline realiseerimine init-i skripte on väga lihtne.

Kasutatud materjaalid

Veebipõhised allikad

Video näided

Linux Run Levels (Part 1 of 2) - Ubuntu
Linux Run Levels (Part 2 of 2) - Red Hat and Fedora

Kategooria raames