Init: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Vkolesni (talk | contribs)
Vkolesni (talk | contribs)
Line 61: Line 61:
= 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'' config'' 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äivitavad 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.
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 laseb kogule süsteemile töötada.


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 ''boot''-imine) 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/rc-sysinit.conf''', oleneb mis linux distro teil on) ja kasutab kataloogi sisu selleks, et luua teatavaid protsessid vastavalt ''runlevel''-ile. Lisaks on vaja meelis pidada, et init ei peata siis kui süsteem hakkas töötama, vaid jätkub töötada ja dünamiiliselt käivitab protsessid, sõltuvalt mis signaalid talle saadakse. Süsteemi andministratoor võib muuta süsteemi protsessid (näiteks '''runlevel-id''') käsuga "telinit" või muuta ''config'' faili 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 ''runlevel''-id erinevates UNIXi süsteemides ==
== Init ''runlevel''-id erinevates UNIXi süsteemides ==


Üldiselt võib väita, et ''runlevel''-id erinevates Linux distros on väga sarnased, 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. ''Runlevel''-id numbritatakse 0 kuni 6. Igal ''runlevel''-il on oma eesmärg. 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 jne.
''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 105: Line 103:
| Halt || shutdown
| Halt || shutdown
|-
|-
| Single-User Mode || Võrk puudub, ainult root kasutaja saab logida.
| Single-User Mode || Võrk puudub, ainult root kasutaja saab sisse logida.
|-
|-
| Multi-User mode || Võrk puudub, 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äivitamine koos võrguga
| Multi-User mode with networking || Tavaline süsteemi käivitamine koos võrguga.
|-
|-
| User-Defined || Kasutatakse spetsifilises olukorras, näiteks testimiseks.
| User-Defined || Kasutatakse spetsifilises olukorras, näiteks testimiseks.
|-
|-
| Full Multi-User Mode || ''Boot''-ib kõik daemonid (GUI, GNOME/KDM)
| Full Multi-User Mode || ''Boot''-ib kõik daemonid (GUI, GNOME/KDM.
|-
|-
| Reboot || taaskäivita ehk ''restart''
| Reboot || Taaskäivitab ehk teeb restarti.
|}
|}
</blockquote>
</blockquote>
Line 144: Line 142:
</blockquote>
</blockquote>


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


----
----
Line 179: Line 177:
'''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 206: Line 204:
== Init alternatiivid ==
== Init alternatiivid ==


On olemas mitu asendused, et kuidas saab initi 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 218: Line 214:
'''launchd'''
'''launchd'''


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


----
----
Line 224: Line 220:
''' Initng '''  
''' Initng '''  


Täeilik initi asendus mis käivitab protsessid asünkroonselt. Teoreetiselt peab kiirendada süsteemi kuna laseb mittu protsesse käivitada paraleelselt. Ei ole eriti veel tuntum kuna antud proekt on veel beta faasis.  
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 230: Line 226:
''' Upstart '''
''' Upstart '''


Täeilik initi asendus mis käivitab protsessid asünkroonselt (Ubuntu põhimõtteliselt). See daemon võib käivitada, katkestada, boot-ida erinevaid teenused ja protsesse.
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 236: Line 232:
''' Service Management Facility '''
''' Service Management Facility '''


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


----
----
Line 242: Line 238:
''' runit '''
''' runit '''


Asendus mis töötab erinevates UNIXi süsteemidel, näiteks GNU/Linux, *BSD, MacOSX, Solaris. 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 248: Line 244:
''' BootScripts '''
''' BootScripts '''


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


----
----
Line 254: Line 250:
''' Mudur'''  
''' Mudur'''  


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


= Initi realiseerimine praktikas =
= Initi realiseerimine praktikas =

Revision as of 09:56, 21 April 2011

ARTIKEL ON POOLIK


Artikli autor ja logi

Nimi: Vladimir Kolesnik
Grupp: A22
Viimati muudetud: 20.04.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     Artikli täiendamine.
0.4 16.04.2011     Artikli täiendamine.
0.5 17.04.2011     Artikli täiendamine.
0.6 19.04.2011     Artikli täiendamine.
1.0 20.04.2011     Valmis.

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 osasks. 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 vajalikus

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

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

Artikli nõuded

Init eksisteerib kõikidel Linux distrodel, seetõttu mingid lisavahendeid või rakendusi pole vaja.

PS: Kuna tegu on Linuxi startup-iga ja üldiselt väga tähtsa protsessiga, on mõistlikum esiteks proovida oma oskusi virtuaal masinas.

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äivitavad 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 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)

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).

Runleveli asukoht

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

 runlevel 

Väljand 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 kataloog, kus X on run leveli ID. rcX.d kataloogis 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 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.

Runlevel-i asendus

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

Ubuntu

Kataloogis /etc/init hoiatatakse kõik init upstart konfigid asuvad.

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

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

Ubuntu 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 1 

Tulemus: Taaskäivitab 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



2) Konfig faile modifitseerimine

Enne konfig faile modifisteerimist, sooviks teha varukoopiat

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

Konfig fail asub kataloogis

/etc/init

Modifisteerimiseks sobib Nano tekstiredaktor

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

Leia antud 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 teenused init.d kataloogis, on olemas selline käsk

sudo /etc/initi.d/command OPTION

Kus OPTION võib olla järgmine:

OPTION Selgitus
start Käivitab teenust
stop Peatab
restart Peatab teenust ja laadib uue konfiguratsiooni
reload Peatab
force-reload Katkestab kõike teenusi ja laddib 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äivitab võrguühendust.

või

sudo /etc/initi.d/apache2 reload

Tulemus: Taaskäivitab apache2

Kõige tihtsam vajalikud ja kasutavam teenused init.d kataloogis on


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

Fedora

Kataloogis /etc/init hoiatatakse kõik init config-id ja skriptid.

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

Konfig failis /etc/inittab saab käsiti muuta runlevel-id.


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 1 

Tulemus: Taaskäivitab 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 1, mis tähendab see on kui masin sulgetatakse kinna ja bootitakse uuesti, runlevel on 1.



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 olukoora
start Käivitab teenust
stop Peatab
restart Peatab teenust ja laadib uue konfiguratsiooni
reload Peatab
force-reload Katkestab kõike teenusi ja laddib 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 tihtsam vajalikud ja kasutavam teenused init.d kataloogis on


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

OpenSUSE

Kataloogis /etc/init hoiatatakse kõik init config-id ja skriptid.

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

Konfig failis /etc/inittab saab käsiti muuta runlevel-id.


Suse linux 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 1 

Tulemus: Taaskäivitab 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 1, mis tähendab see on kui masin sulgetatakse kinna ja bootitakse uuesti, runlevel on 1.



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 olukoora
start Käivitab teenust
stop Peatab
restart Peatab teenust ja laadib uue konfiguratsiooni
reload Peatab
force-reload Katkestab kõike teenusi ja laddib uue konfiguratsiooni

Näiteks

# /etc/init.d/apache2 start
Starting httpd2 (prefork)                                            done

Tulemus: Käivitab apache2

või

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

Tulemus: Käivitame samba-t

Kõige tihtsam vajalikud ja kasutavam teenused init.d kataloogis on


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

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