Init: Difference between revisions
(189 intermediate revisions by one other user not shown) | |||
Line 3: | Line 3: | ||
'''Nimi:''' Vladimir Kolesnik<br /> | '''Nimi:''' Vladimir Kolesnik<br /> | ||
'''Grupp:''' A22<br /> | '''Grupp:''' A22<br /> | ||
'''Viimati muudetud:''' | '''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 13: | Line 13: | ||
| 0.2 || 14.04.2011 || Sissejuhatus, lingid, sisu, tabelid. | | 0.2 || 14.04.2011 || Sissejuhatus, lingid, sisu, tabelid. | ||
|- | |- | ||
| 0.3 || 15.04.2011 || | | 0.3 || 15.04.2011 || Sisukord, runlevelid. | ||
|- | |- | ||
| 0.4 || 16.04.2011 || Artikli täiendamine. | | 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 | |||
|} | |} | ||
</blockquote> | </blockquote> | ||
Line 21: | Line 33: | ||
= Sissejuhatus = | = Sissejuhatus = | ||
== Artikli | 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 == | |||
# Tutvustada lugejale Linuxi ''boot'' protsessi. | |||
# Anda ülevaade Init konfigureerimisest. | |||
# Anda ülevaade ''runlevel''-ist UNIXi süsteemides. | |||
# Käsuga init on võimalik käivitada ja katkestada järgmiseid teenused: Network, Apache, Mysql ja teised. | |||
== Artikli sisu == | == Artikli sisu == | ||
Artikel on jagatud kaheks osaks. Esimene osa on teoreetiline, mis sisaldab põhimõisteid, üldist informatsiooni, ''runlevel''-i ülevaade. | |||
<br/> | |||
Teine osa on praktiline, kus saab rakendada ja käivitada erinevaid init ''runlevel''-eid, erinevatel Linuxi süsteemidel (Ubuntu, FedoraCore ja SUSE). | |||
== Artikli | == Artikli vajalikkus == | ||
Vahel on vaja kiiresti | 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 | 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 == | ||
Initi rakendamiseks kasutajal peavad olema administraatori õigused. | |||
<span style="color:RED"> PS: Kuna tegu on Linuxi startup-iga ja üldiselt väga | 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ä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 | Teoreetilises osas vaatame põhimõisteid, initi informatsioon ja ülevaated erinevatest init olemusest. | ||
== Üldine ülevaade == | == Üldine ülevaade == | ||
Init (ehk '''initialization''') on rakendus | 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, | 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 kogu | 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 | 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 | # BIOS laeb ja käivitab alglaaduri (nt GRUB - GRand Unified Bootloader, LILO või Loadlin). | ||
# Alglaadur | # 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öö | # Initramfs annab oma töö lõpus juhtimise üle operatsioonisüsteemi programmile init. | ||
# Operatsioonisüsteemi init käivitab | # 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/> | |||
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 | == Init ''runlevel''-id erinevates UNIXi süsteemides == | ||
Üldiselt võib väita, et | Ü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. | |||
<blockquote style="margin: 2em 2em 2em 0;"> | <blockquote style="margin: 2em 2em 2em 0;"> | ||
Line 88: | Line 107: | ||
| Halt || shutdown | | Halt || shutdown | ||
|- | |- | ||
| Single-User Mode || | | Single-User Mode || Võrk puudub, ainult root kasutaja saab sisse logida. | ||
|- | |- | ||
| Multi-User mode || | | Multi-User mode || Võrk puudub, lubab kõikidele kasutajatele sisse logida. | ||
|- | |- | ||
| Multi-User mode with networking || Tavaline süsteemi | | 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 || | | Full Multi-User Mode || ''Boot''-ib kõik daemonid (GUI, GNOME/KDM. | ||
|- | |- | ||
| Reboot || | | Reboot || Taaskäivitab ehk teeb restarti. | ||
|} | |} | ||
</blockquote> | </blockquote> | ||
=== Ubuntu === | === Ubuntu === | ||
'''Distro:''' | '''Distro:''' alates 6.10<br /> | ||
<blockquote style="margin: 2em 2em 2em 0;"> | <blockquote style="margin: 2em 2em 2em 0;"> | ||
Line 129: | Line 146: | ||
</blockquote> | </blockquote> | ||
''Runlevel''-id Ubuntus on erinevad. 2-5 on samasugused ''runlevel''-id | |||
---- | ---- | ||
Line 164: | Line 181: | ||
'''Distro:''' SUSE <br /> | '''Distro:''' SUSE <br /> | ||
SUSE kasutab peaaegu samad | 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 188: | Line 205: | ||
|} | |} | ||
</blockquote> | </blockquote> | ||
== 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). | |||
<span style="color:RED"> Järgmised sammud puutuvad kokku süsteemi failidega, soovitavalt teha varukoopiat, et alati saaks muutusi tagastuda</span> | |||
<pre>tar -cvf /root/backup_init.tar /etc/init.d/*</pre> | |||
<u>Tulemus</u> 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 === | === Runleveli asukoht === | ||
Selleks on teada mis ''runlevel''-il on praegu teie masin töötab, kirjutage (töötab kõikides süsteemides). | |||
<pre>runlevel</pre> | |||
Väljund on tavaliselt selline: | |||
/ | <pre>N X</pre> | ||
kus "X" on ''runlevel''-i ID (0, 1, 2...6) | |||
''' | |||
Asukoht''' | |||
''Runlevel''-id asuvad failisüsteemis, neid saab leita '''/etc''' kataloogis. | |||
<pre> | |||
cd /etc/ | |||
ls | grep rc | |||
</pre> | |||
*/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/''' | |||
<pre> | |||
cd /etc/rc2.d | |||
ls | |||
</pre> | |||
Väljundiseks saate tavaliselt järgmised teenues: | |||
<pre> | |||
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 | |||
</pre> | |||
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: | |||
<pre>cd /etc/rc2.d/ | |||
rename /etc/rc2.d/S30gdm /etc/rc2.d/K70gdm | |||
</pre> | |||
<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. | |||
= | === ''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 == | == Ubuntu == | ||
=== 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: | |||
<br/> | |||
'''1) Käsuga telinit''' | |||
<pre> telinit X </pre> | |||
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks | |||
<pre> telinit 1 </pre> | |||
<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 üle minna. Vaikimisi on ''runlevel'' ikka 2, mis tähendab seda, et kui masin pannakse kinni ja ''boot''-itakse uuesti, on ''runlevel'' 2. | |||
<br/> | |||
'''2) Config faile modifitseerimine''' | |||
Enne config faile muutmist, soovitan teha varukoopia: | |||
<pre>cp /etc/init/rc-sysinit.conf /etc/init/rc-sysinitbackup.conf</pre> | |||
''Config fail'' asub kataloogis: | |||
<pre>/etc/init</pre> | |||
Modifisteerimiseks sobib Nano tekstiredaktor. | |||
<pre>sudo nano /etc/init/rc-sysinit.conf</pre> | |||
Leia järgmised read: | |||
<pre># 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 </pre> | |||
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks: | |||
<pre># 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</pre> | |||
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: | |||
<pre> ls /etc/init.d </pre> | |||
'''Kasutamine''' | |||
Selleks on rakendada teenuseid init.d kataloogis, on olemas selline käsk: | |||
<pre> | <pre> | ||
sudo /etc/initi.d/command OPTION | |||
</pre> | </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> | <pre> | ||
sudo /etc/initi.d/networking stop | |||
</pre> | </pre> | ||
<u>Tulemus:</u> Katkestab võrguühendust. | |||
või | |||
<pre> | |||
sudo /etc/initi.d/networking restart | |||
</pre> | |||
<u>Tulemus:</u>Taaskäivitub võrguühendust. | |||
või | |||
<pre> | |||
sudo /etc/initi.d/apache2 reload | |||
</pre> | |||
<u>Tulemus:</u> Taaskäivitub ''apache2'' | |||
Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad '''/etc/init.d''' kataloogis | |||
# networking | |||
# samba | |||
# apache2 | |||
# ftpd | |||
# sshd | |||
# dovecot | |||
# mysql | |||
== 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 === | |||
On olemas 2 võimalust: | |||
<br/> | |||
'''1) Käsuga telinit''' | |||
<pre> telinit X </pre> | |||
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks | |||
<pre> telinit 6</pre> | |||
<u>Tulemus:</u> Taaskäivitub Fedora-t. | |||
<br/> | |||
või | |||
<pre> telinit 0 </pre> | |||
<u>Tulemus:</u> Paneb kinni. | |||
<br/> | |||
'''2) Inittab modifitseerimine''' | |||
Inittab on ''runlevel''-i alglaadur. Asub'''/etc/''' kataloogis | |||
<pre> | |||
cd /etc | |||
ls | grep inittab</pre> | |||
Modifisteerimiseks sobib Nano tekstiredaktor: | |||
<pre>su nano /etc/inittab</pre> | |||
Kõige viimane rida: | |||
<pre>id:X:initdefault:</pre> | |||
kus <span style="color:RED">X</span> on runleveli ID (0-6). Näiteks: | |||
<pre>id:2:initdefault:</pre> | |||
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> sudo /etc/init.d/smb restart | |||
Shutting down SMB services: [ OK ] | |||
Starting SMB services: [ OK ] | |||
</pre> | |||
<u>Tulemus:</u> Taaskäivitab samba-t | |||
või | |||
<pre> | |||
sudo /etc/init.d/smb start | |||
Starting SMB services: [ OK ] | |||
</pre> | |||
<u>Tulemus:</u> Käivitame samba-t | |||
Kõige tihedamini kasutatavad ja vajalikumd teenused, mis asuvad '''/etc/init.d''' kataloogis | |||
# networking | |||
# samba | |||
# apache2 | |||
# ftpd | |||
# sshd | |||
# dovecot | |||
# mysql | |||
== SUSE Linux == | |||
=== SUSE bootimini erinevates režiimides === | |||
On olemas 2 võimalust: | |||
<br/> | |||
'''1) Käsuga telinit''' | |||
<pre> telinit X </pre> | |||
kus <span style="color:RED">X</span> on ''runlevel''-i ID (0-6). Näiteks | |||
<pre> telinit 6</pre> | |||
<u>Tulemus:</u> Taaskäivitub SUSE Linux. | |||
<br/> | |||
või | |||
<pre> telinit 5 </pre> | |||
<u>Tulemus:</u> Käivatab SUSE ''Multi-User mode with display manager'' režiimis (ehk ''runlevel'' 5) . | |||
<br/> | |||
'''2) Inittab modifitseerimine''' | |||
Inittab on ''runlevel''-i alglaadur. Asub'''/etc/''' kataloogis | |||
<pre> | |||
cd /etc | |||
ls | grep inittab</pre> | |||
Modifisteerimiseks sobib Nano tekstiredaktor: | |||
<pre>su nano /etc/inittab</pre> | |||
Kõige viimane rida: | |||
<pre>id:X:initdefault:</pre> | |||
kus <span style="color:RED">X</span> on runleveli ID (0-6). Näiteks: | |||
<pre>id:2:initdefault:</pre> | |||
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 293: | Line 717: | ||
== Veebipõhised allikad == | == Veebipõhised allikad == | ||
*http://www. | *[http://www.linux.com/archive/feature/114107 An introduction to services, runlevels, and rc.d scripts] | ||
*http:// | *[http://linux.about.com/od/commands/l/blcmdl8_init.htm/ Linux / Unix Command: init] | ||
*http:// | *[http://www.linuxquestions.org/questions/ubuntu-63/since-we-have-no-etc-inittab-506281 Since we have no /etc/inittab] | ||
* | *[http://upstart.ubuntu.com UpStart overview.] | ||
*http://www. | *[http://upstart.ubuntu.com/faq.html UpStart FAQ] | ||
*http:// | *[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] | ||
* | *[http://en.wikipedia.org/wiki/Init Wikipedia: init] | ||
*[http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html YoLinux.com: Linux Init Process / PC Boot Procedure] | |||
*http:// | *[http://www.erlang.org/doc/man/init.html Using init in programming languages: ERLANG.] | ||
*http://www. | *[http://www.comptechdoc.org/os/linux/startupman/linux_suinit.html Linux Init and System Initialization] | ||
*http:// | *[http://kuutorvaja.eenet.ee/wiki/Debiani_alglaadimine Debiani alglaadimine] | ||
*[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. | *[http://osr507doc.sco.com/en/OSAdminG/sstT.chg_inittab.html Changing the /etc/inittab file] | ||
*http:// | *[http://www.debian-administration.org/article/212/An_introduction_to_run-levels An introduction to run-levels] | ||
*[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] | |||
== Video näided == | == Video näided == | ||
[http://www.youtube.com/watch?v=OcX7FaTAFV4 Linux Run Levels (Part 1 of 2) - Ubuntu] <br/> | |||
[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
- Tutvustada lugejale Linuxi boot protsessi.
- Anda ülevaade Init konfigureerimisest.
- Anda ülevaade runlevel-ist UNIXi süsteemides.
- 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
- Toite sisselülitamise järel omandab kontrolli püsimälus olev firmware (PC puhul BIOS).
- BIOS laeb ja käivitab alglaaduri (nt GRUB - GRand Unified Bootloader, LILO või Loadlin).
- 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.
- Initramfs annab oma töö lõpus juhtimise üle operatsioonisüsteemi programmile init.
- Operatsioonisüsteemi init käivitab protsessid.
- 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
- networking
- samba
- apache2
- ftpd
- sshd
- dovecot
- 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
- networking
- samba
- apache2
- ftpd
- sshd
- dovecot
- 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
- 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
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
- An introduction to services, runlevels, and rc.d scripts
- Linux / Unix Command: init
- Since we have no /etc/inittab
- UpStart overview.
- UpStart FAQ
- UbuntuBoot: How to
- Init script list
- Get To Know Linux: The /etc/init.d Directory
- Wikipedia: init
- YoLinux.com: Linux Init Process / PC Boot Procedure
- Using init in programming languages: ERLANG.
- Linux Init and System Initialization
- Debiani alglaadimine
- How do I find out runlevel of unix or Linux system?
- Changing the /etc/inittab file
- An introduction to run-levels
- Booting and Configuring a Linux System / 7.5. Init Scripts
Video näided
Linux Run Levels (Part 1 of 2) - Ubuntu
Linux Run Levels (Part 2 of 2) - Red Hat and Fedora