SysRq

Linux.fista
Versio hetkellä 9. joulukuuta 2016 kello 16.27 – tehnyt Oselotti (keskustelu | muokkaukset)
(ero) ← Vanhempi versio | Nykyinen versio (ero) | Uudempi versio → (ero)
Siirry navigaatioon Siirry hakuun

SysRq on näppäimistön nappi, jolla on Linuxissa hyödyllinen käyttötarkoitus. Linuxin jäädessä jumiin voi SysRq:n avulla tehdä vielä paljonkin asioita ja palauttaa järjestelmän vakauden. Esimerkiksi jumittuneen koneen käynnistämisen uudelleen voi tehdä turvallisesti liittäen ensin levyosiot vain luku -tilaan SysRq:n avulla. SysRq on siis todellinen "taikanappula", jolla näennäisesti jumiutunut järjestelmä voidaan palauttaa aisoihin.

Käyttöönotto

SysRq-toiminnon käyttö edellyttää, että CONFIG_MAGIC_SYSRQ -asetus on ollut päällä käytössä olevaa ydintä käännettäessä. Monien jakeluiden oletusydinten tapauksessa SysRq on käännetty kerneliin mukaan, mutta sitä ei ole otettu erikseen käyttöön. Tila voidaan tarkastaa /proc/sys/kernel/sysrq -tiedostosta:

$ cat /proc/sys/kernel/sysrq
Arvo Tila
0 Kaikki SysRq:n funktiot ovat pois käytöstä
1 Kaikki SysRq:n funktiot ovat käytössä
16 sync on käytössä

Sopiva arvo voidaan asettaa esimerkiksi /etc/sysctl.d/90-sysrq.conf -tiedostoon, jolloin kernel ottaa sen käyttöön aina järjestelmän käynnistyessä. Tiedostoon voidaan esimerkiksi lisätä rivi:

kernel.sysrq = 1

Käyttö

Seuraavat komennot siis alt+SysRq ja mainittu nappula (vaikkapa alt+SysRq+ctrl).

ctrl näyttää lyhyen ohjeen ja muistuttaa pikanäppäimistä

r - Kytkee näppäimistön XLATE-tilaan

k - Tappaa kaikki aktiivisessa virtuaalikonsolissa olevat ohjelmat

b - Käynnistää järjestelmän uudestaan välittömästi, siis synkronoimatta tai irroittamatta tiedostojärjestelmiä. Tyyliin reset-nappi.

o - Sammuttaa järjestelmän ACPI:n kautta, vaatii toki tuen ytimeltä.

s - Yrittää synkronoida kaikki liitetyt tiedostojärjestelmät.

u - Yrittää uudelleenliittää kaikki liitetyt tiedostojärjestelmät vain luku -tilaan.

p - Tulostaa nykyiset rekisterit ja liput.

t - Tulostaa ajossa olevat tehtävät ja niiden tiedot.

m - Tulostaa muistitiedot.

0-9 - Asettaa konsolin "lokitason" (log level), eli mitkä kernelin virheilmot tulostetaan konsoliin. Esimerkiksi 0-tasolla ainoastaan hätäviestit kuten OOPS ja PANIC päätyvät konsoliin asti.

e - Lähettää SIGTERMin kaikille prosesseille paitsi initille.

i - Lähettää SIGKILLin kaikille prosesseille paitsi initille.

l - Lähettää SIGKILLin kaikille prosesseille, myös initille. Tekee järjestelmästä käyttökelvottoman seuraavaan käynnistykseen asti.

Yleensä jumittuneen järjestelmän uudelleenkäynnistys kannattaa tehdä yhdistelmällä r-e-i-s-u-b.