Kõik süsteemi käivitamisega seotdu failid asuvad kataloogis /etc/rc.d
. Need failid on järgmised:
$ ls /etc/rc.d init.d/ rc0.d/ rc2.d/ rc4.d/ rc6.d/ rc.local* rc.sysinit* rc* rc1.d/ rc3.d/ rc5.d/ rc.alsa_default* rc.modules*
Nagu mainitud, on rc.sysinit
esimene fail, mille süsteem käivitab. See kannab vastutust masina põhilise seadistuse määramise eest: klaviatuuritüüp, teatud seadmete seadistamine, failisüsteemi kontroll jne.
Seejärel käivitatakse skript rc, mille argumendiks on soovitud käivitustase. Nagu nägime, on käivitustase lihtsalt üks täisarv. Iga käivitustaseme <x>
jaoks peab olema vastav kataloog rc<x>.d
. Tüüpilise Mandriva Linuxi paigalduse korral on käivitustasemeid kuus:
1: ainukasutajarežiim. Väga tõsiste probleemide või süsteemi taastamise jaoks.
2: mitmekasutajarežiim ilma võrguta.
5: nagu käivitustase 3, aga pannakse tööle graafiline sisselogimisliides.
Vaatame nüüd kataloogi rc3.d
sisu:
$ ls /etc/rc.d/rc3.d/ K09dm@ S12syslog@ S24messagebus@ S40atd@ S91dictd-server@ S01udev@ S13partmon@ S25haldaemon@ S55sshd@ S92lisa@ S03iptables@ S15cups@ S25netfs@ S56ntpd@ S95kheader@ S05harddrake@ S17alsa@ S29numlock@ S56rawdevices@ S99local@ S10network@ S18sound@ S33nifd@ S75keytable@ S11shorewall@ S20xfs@ S34mDNSResponder@ S90crond@ $
Nagu näete, on kõik selle kataloogi failid nimeviidad, kusjuures neil on väga spetsiifiline vorm. Üldiselt on see selline:
<S|K><järjekord><teenuse_nimi>
S
tähendab teenuse käivitamist (Start), K
selle surmamist (Kill) ehk peatamist. Skriptid käivitatakse alanevas numbrite järjekorras, kui kahel skriptil peaks olema sama number, arvestatakse alanevalt tähestikulist järjekorda. Samuti võime näha, et kõik nimeviidad osutavad vastavale skriptile kataloogis /etc/init.d
(välja arvatud skript local, mis vastutab spetsiifilise teenuse juhtimise eest).
Kui süsteem siseneb teatud käivitustasemele, pannakse etteantud järjekorras tööle K
-lingid: käsk rc tuvastab asukoha, millele link viitab, ning käivitab seejärel vastava skripti argumendiga stop
. Seejärel pannakse samamoodi tööle S
-skriptid, ainult et nende korral on argumendiks start
.
Süvenemata skriptide olemusse võime öelda, et kui süsteem suundub käivitustasemele 3, pannakse kõigepealt tööle käsk K09dm (s.t. /etc/init.d/dm stop). Siis võetakse ette S
-skriptid: kõigepealt S01udev, mis kutsub välja /etc/init.d/udev start, seejärel S03iptables ja nii edasi.
Eelöeldu põhjal võite mõne minutiga luua täiesti omaenda käivitustaseme (kasutades selleks näiteks käivitustaset 4) või vältida mõne teenuse käivitamist või peatamist, kustutades vastava nimeviida.
Teenuste lisamiseks, eemaldamiseks, aktiveerimiseks või deaktiveerimiseks mingil käivitustasemel saab kasutada ka käsku chkconfig. Käsuga chkconfig --add teenuse_nimi saab teenuse teenuse_nimi
lisada (aktiveerida) kõigile toetatud[30]käivutustasemetele ning käsuga chkconfig --del teenuse_nimi määratud teenuse kõigilt käivitustasemetelt eemaldada (deaktiveerida).
![]() | Vihje |
---|---|
Käsuga chkconfig --list saate teada, millised teenused on saadaval, millised on nende nimed ja milline on nende olek kõigil defineeritud käivitustasemetel. |
Käsuga chkconfig --levels 35 sshd on aktiveeritakse SSH-server (sshd
) käivitustasemetel 3 ja 5, käsuga chkconfig --levels 3 sound off aga eemaldatakse käivitustasemelt 3 heli toetus. Kui jätta ära parameeter --levels tasemete_nimekiri
, aktiveeritakse või deaktiveeritakse määratud teenus käivitustasemetel 2, 3, 4, ja 5. Pange tähele, et see võib kaasa tuua teenuste lubamise sellistel käivitustasemetel, mis ei suuda neid korralikult toetada. Seepärast on mõttekam määrata konkreetne käivitustase.
Töötavas süsteemis saab teenuseid juhtida käsuga service sõltumata sellest, kas teenused on seadistatud antud käivitustasemel töötama või mitte. Selle käsu süntaks on järgmine:
service teenuse_nimi toiming
kus teenuse_nimi
on vajaliku teenuse nimi kujul, nagu selle annab chkconfig --list, ning toiming
üks järgmistest:
Käivitab määratud teenuse. Pange tähele, et enamik teenuseid hoiatab, kui nad on juba käivitatud. Sellisel juhul tuleks kasutada toimingut restart
.
Peatab määratud teenuse. Pange tähele, et teenuse peatamisel lahutatakse automaatselt kõik kasutajad, kes olid antud teenusega ühendatud.
Peatab ja seejärel käivitab määratud teenuse. Sama tulemuse annab service teenuse_nimi stop && service teenuse_nimi start. Pange tähele, et teenuse taaskäivitamisel lahutatakse automaatselt kõik kasutajad, kes olid antud teenusega ühendatud.
Erinevad teenused toetavad erinevaid toiminguid (eelnevalt mainitud on ühised kõigile teenustele). Näiteks reload
laadib uuesti teenuse konfiguratsioonifaili ilma teenust taaskäivitamata, force-stop
sunnib peale teenuse seiskamise, status
näitab infot teenuse oleku kohta jne. Käsku service teenuse_nimi andes näete kõiki toiminguid, mida antud teenus toetab.
[30] “Toetatud” käivitustase tähendab näiteks seda, et võrguga seotud teenuseid ei saa lisada käivutustasemele 2, sest see ei toeta võrguühendust.