Ero sivun ”Init-skriptit” versioiden välillä

Siirry navigaatioon Siirry hakuun
Otto (keskustelu | muokkaukset)
Ei muokkausyhteenvetoa
EgoLuser (keskustelu | muokkaukset)
Lisätty Katso Myös -osio.
 
(3 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 3: Rivi 3:
System V -tyylistä initiä ([[sysvinit]]) käyttävissä järjestelmissä init-skriptit löytyvät [[Linuxin hakemistorakenne|hakemistosta]] <tt>/etc/init.d</tt> ja BSD-tyylistä initiä käyttävissä hakemistosta <tt>/etc/rc.d</tt>.
System V -tyylistä initiä ([[sysvinit]]) käyttävissä järjestelmissä init-skriptit löytyvät [[Linuxin hakemistorakenne|hakemistosta]] <tt>/etc/init.d</tt> ja BSD-tyylistä initiä käyttävissä hakemistosta <tt>/etc/rc.d</tt>.


Käynnistettävien init-skriptien hallintaan löytyy useita valikkopohjaisia käyttöliittymiä. Monilla jakeluilla on tähän omia ohjelmiansa. Esimerkiksi [[Fedora]]- ja [[Red Hat]] -pohjaisista järjestelmistä löytyy [[system-config-services]] ([[GUI|graafinen]]) ja [[ntsysv]] ([[TUI|tekstipohjainen]]). [[openSUSE]]ssa käynnistettäviä palveluita voi säätää [[YaST]]in kautta.
Käynnistettävien init-skriptien hallintaan löytyy useita valikkopohjaisia käyttöliittymiä. Monilla jakeluilla on tähän omia ohjelmiansa. Esimerkiksi [[Fedora]]- ja [[Red Hat]] -pohjaisista järjestelmistä ennen löytyi[[system-config-services]] ([[GUI|graafinen]]) ja [[ntsysv]] ([[TUI|tekstipohjainen]]). Nykyään ne käyttävät [[systemd]]tä [[sysvinit]]in sijaan. [[openSUSE]]ssa käynnistettäviä palveluita voi säätää [[YaST]]in kautta.


[[Komentorivi]]ltä init-skriptejä voi käynnistää ja sulkea lennosta siirtymällä skriptit sisältävään hakemistoon ja käyttämällä komentoja <tt>./skriptinnimi start</tt>, <tt>./skriptinnimi restart</tt> tai <tt>./skriptinnimi stop</tt>.
[[Komentorivi]]ltä init-skriptejä voi käynnistää ja sulkea lennosta siirtymällä skriptit sisältävään hakemistoon ja käyttämällä komentoja <tt>./skriptinnimi start</tt>, <tt>./skriptinnimi restart</tt> tai <tt>./skriptinnimi stop</tt>.
Rivi 9: Rivi 9:
Sysvinitiä käyttävissä järjestelmissä eri [[ajotaso]]illa käynnistettäviä skriptejä hallitaan <tt>/etc/rc''?''.d</tt>-hakemistoissa olevilla [[symbolinen linkki|symbolisilla linkeillä]]. <tt>S</tt> linkin nimessä tarkoittaa ajotasoon siirtymisen (käynnistyksen) yhteydessä ajamista ja <tt>K</tt> ajotasosta poistumisen yhteydessä ajamista. Näiden jälkeen tuleva numero ilmaisee järjestyksen, jossa skriptit suoritetaan.
Sysvinitiä käyttävissä järjestelmissä eri [[ajotaso]]illa käynnistettäviä skriptejä hallitaan <tt>/etc/rc''?''.d</tt>-hakemistoissa olevilla [[symbolinen linkki|symbolisilla linkeillä]]. <tt>S</tt> linkin nimessä tarkoittaa ajotasoon siirtymisen (käynnistyksen) yhteydessä ajamista ja <tt>K</tt> ajotasosta poistumisen yhteydessä ajamista. Näiden jälkeen tuleva numero ilmaisee järjestyksen, jossa skriptit suoritetaan.


Jos päätät ottaa pois jonkin käynnistysskriptin tarpeettomana, kannattaa ehkä poistaa samalla koko ohjelmapaketti, kun se kerta on tarpeeton. Ubuntussa voi tarkistaa mihin pakettiin tietty tiedosto kuuluu esim. komennolla <tt>dpkg-query -S /etc/init.d/exim4</tt> ja kun saat vastauksen poistaa paketin esim. komennolla <tt>sudo apt-get purge exim4-base</tt>.
Jos päätät ottaa pois jonkin käynnistysskriptin tarpeettomana, kannattaa ehkä poistaa samalla koko ohjelmapaketti, kun se kerta on tarpeeton. Esimerkiksi [[Debian]]-pohjaisissa jakeluissa (kuten [[Ubuntu]]) voi tarkistaa mihin pakettiin tietty tiedosto kuuluu esim. komennolla <tt>dpkg-query -S /etc/init.d/exim4</tt>, tuloksena saadun paketin voi poistaa esimerkiksi komennolla <tt>sudo [[apt-get]] purge exim4-base</tt>, lisätietoja artikkelissa [[ohjelmien asentaminen]].
 
== Init-skriptien kanssa työskentely - Pikaohje ==
Oletetaan, että käytössä ei ole BSD-tyylinen init, vaan käytetään tavanomaista sysvinit asennusta.
Oletetaan myös, että käytössä ei ole sysvinitin käyttöä helpottavia työkaluja (kuten '''service''' tai esim. '''update-rc.d''').
Oletetaan myös, että haluttu sysvinit [[ajotaso]] on 3.
 
Sysvinit noudattaa tapaa, jonka mukaan init-skriptit nimetään tietyllä tavalla. Init-skriptit, jotka käynnistävät taustaprosessin nimetään esimerkiksi ''S42foobar''. Siinä "S" tarkoittaa käynnistä (eli "start"), "42" merkitsee järjestystä jossa ko. init-skripti suoritetaan ja lopuksi "foobar" on esimerkki taustapalvelun nimestä. Init-skriptit, jotka pysäyttävät taustapalvelun nimetään muutoin samalla tavalla, mutta ensimmäinen kirjain ei ole "S", vaan se on on "K", joka tulee englanninkielen sanasta "kill".
 
Alla olevassa taulukossa käytetään [[ufw|ufw:ta]] esimerkkinä.
{| class="wikitable"
|+ Sysvinitin, Systemd:n ja OpenRC:n vastaavuudet
|-
! Sysvinit komento !! Systemd komento !! OpenRC komento
|-
| /etc/init.d/ufw start || systemctl start ufw.service || rc-service ufw start
|-
| /etc/init.d/ufw stop || systemctl stop ufw.service || rc-service ufw stop
|-
| ln -siv /etc/init.d/ufw /etc/rc3.d/S42ufw <br> ln -siv /etc/init.d/ufw /etc/rc0.d/K42ufw || systemctl enable ufw.service || rc-update add ufw default
|-
| rm -iv /etc/rc3.d/S42ufw || systemctl disable ufw.service || rc-update del ufw default
|}
 
Huom! Viimeisessä esimerkissä olisimme voineet myös poistaa UFW:n lopettavan init-skriptin ajotasosta ''0'', mutta ennen kuin sen voi poistaa, tulee olla varma että mikään muu ajotaso ei käynnistä ufw:n taustapalvelua (muutoin tulisi ongelmia).
Jos haluaa käyttää sysvinitiä, on suositeltavaa käyttää jotakin edellä mainituista työkaluista, koska ne merkittävästi helpottavat sen käyttämistä ja sysvinit on silloin lähes yhtä helppokäyttöinen kuin Systemd.


==Yleisiä init-skriptejä==
==Yleisiä init-skriptejä==
Rivi 349: Rivi 374:
| wacom tai xserver-xorg-input-wacom || [[Wacom]]-piirtopöydät ||  
| wacom tai xserver-xorg-input-wacom || [[Wacom]]-piirtopöydät ||  
|}
|}
== Katso myös ==
* [[systemd]]
* [[OpenRC]]
* [[Runit]]
* [[BSD-init]]
* [[sysvinit]]


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]