2.) Ha megvan, akkor bootoljunk újra a kernellel, és nézzük meg, hogy engedélyezve van-e a használata:
(300MHz 49C) root@alderaan:/home/trey $ sysctl -a | grep sysrq kernel.sysrq = 0 |
Ha nincs, akkor engedélyezzük:
(300MHz 50C) root@alderaan:/home/trey $ sysctl -w kernel.sysrq=1 kernel.sysrq = 1 |
Maradandó beállítást a /etc/sysctl.conf-ban lehet elvégezni.
Ezek után már használhatjuk is a Magic SysRq billentyűket. A használata a következő:
Példaként nézzük a korábban említett szituációt... A konzolon nincs kép, nem látjuk mit billenytűzünk be a gépbe... Újra kellene bootolni a gépet, de úgy, hogy ne sérüljön a filerendszer...
A megoldás, ha engedélyezve van a Magic SysRq:
Altgr + Sys Rq billentyűk lenyomása mellett leütjük a következő billentyűket a következő sorrendben:
(Altgr + Sys Rq +) s
(s = sync, szinronizálja a filerendszert, kiüríti a dirty puffereket) (Altgr + Sys Rq +) u (u = umount, vészhelyzetben umount-olja a filerendszereket) (Altgr + Sys Rq +) b (b = boot, újrabootolja a gépet) |
Az Intel architektúrákon a SysRq billentyűt jelölik még Prt Sc-nel (print screen) is.
Nem csak erre a három funkcióra használható a Magic SysRq. Az alábbi lista bővebb infót ad a használatról.
'r' - Turns off keyboard raw mode and sets it to XLATE.
'k' - Secure Access Key (SAK) Kills all programs on the current virtual 'b' - Will immediately reboot the system without syncing or unmounting 'o' - Will shut your system off (if configured and supported). 's' - Will attempt to sync all mounted filesystems. 'u' - Will attempt to remount all mounted filesystems read-only. 'p' - Will dump the current registers and flags to your console. 't' - Will dump a list of current tasks and their information to your 'm' - Will dump current memory info to your console. '0'-'9' - Sets the console log level, controlling which kernel messages 'e' - Send a SIGTERM to all processes, except for init. 'i' - Send a SIGKILL to all processes, except for init. 'l' - Send a SIGKILL to all processes, INCLUDING init. (Your system 'h' - Will display help ( actually any other key than those listed |
Miután tudjuk mi az a Magic SysRq, és mire használható, könnyen beláthatjuk, nem csak jó dologra lehet használni, ha bele van fordítva a kernelbe, annak lehetnek negatív hatásai is. Ezért néhány Linux disztribútor (pl. a SuSE) nem is fordítja bele a default kernelbe a Magic Sysrq-t.
A SuSE felé azonban jeleztek olyan igényeket, hogy jó lenne, ha a felhasználók tudnának néhány funkciót használni a Magic SysRq adta lehetőségek közül, de nem mindent. Ennek hatására Jan Kara a SuSE kernel hackere írt egy patchet, amely lehetővé teszi a rendszeradminisztrátornak, hogy a /proc/sys/kernel/sysrq felületen keresztül konfigurálni tudja azt, hogy milyen funkcióit lehessen használni a SysRq-nak.
0 - teljesen tiltva a sysrq
1 - teljesen engedélyezve a sysrq
>1 - bitmask-kal meghatározva, hogy a sysrq mely funkciói használhatók
2 - enable control of console logging level 4 - enable control of keyboard (SAK, unraw) 8 - enable debugging dumps of processes etc. 16 - enable sync command 32 - enable remount read-only 64 - enable signalling of processes (term, kill) 128 - allow reboot |
Használata:
echo "0" > /proc/sys/kernel/sysrq
Kérte Andrew Mortont, hogy tegye a patchet a mainline kernel részévé. Andrew kérte a fejlesztőt, hogy indokolja meg, hogy miért kellene a mainline kernelbe beépíteni a patchet. Jan azt írta, hogy például egy oktatóteremben a rendszeradminisztrátor nem szeretné, hogy a felhasználók használják az Umount/Kill-t, de jó lenne ha hozzáférnének például a SAK/raw funkcióhoz. A másik indok az volt, hogy a SuSE nem fordítja bele a kernelbe a Magic SysRq-t, mert néhány ember aggódik a biztonság miatt, viszont emiatt a kernel fejlesztők kevés debug visszajelzést kapnak (pl. deadlock esetén hasznos lenne). A fejlesztők életét tenné könnyebbé...
Andrew-nek ennyi elég is volt, és úgy tűnik, hogy a patch a mainline kernel része lesz.
- A hozzászóláshoz be kell jelentkezni
- 7150 megtekintés
Hozzászólások
Érdekes, hogy ilyen funkciókat a /proc fájlrendszerbe tesznek, mikor úgy sejtem, szeretnének mielöbb megszabadulni tőle, és áttérni a jóval struktúráltabb és kezelhetőbb sysfs -re...
- A hozzászóláshoz be kell jelentkezni
Ha jol latom, akkor az a problema, hogy egy soros vonalon keresztul is lehet hasznali ezt a feature-t. Szerintem jo lenne, ha konfiguralhato lenne, hogy a kernel csak bizonyos bemeneti csatornakrol fogadja el a MagigcSysrq-t (pl: konzol).
Amugy nekem vegyes tapasztalataim vannak ezzel a dologgal. egyszer mar az is elofordult velem, hogy leragadt a gep, adtam neki egy sync-et, egy umount-ot, aztan egy rebootot, es mikor bebootolt a gep a fajlrendszer nem erezte valami jol magat. De ez csak egyszer torten meg. Azota is benne van a kernelemben es neha igencsak hasznos tud lenni.
- A hozzászóláshoz be kell jelentkezni
Nekem egy olyan ficsor hianyzik a vanillabol ami kidumpolja a oops ot mondjuk a swap paricioba, hogya X alol elszal a linux akkor megtudjam hol a hiba. Tudom van valahol vmi hasonlo patch de en meg nem lattam.
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Kosz a linket. Nekem inkazabol cko patchelt kerlnelhez kene. Jo lenne ha benne lenne a vanillaba kernelbe.
- A hozzászóláshoz be kell jelentkezni
óóóóóvasó is kicsi zümi? :-)
/proc/sys
Vagyis, még akkor is tudod szabályozni az egyes funkciókat, ha pl. procfs be sincs mountolva...
Lásd man 2 sysctl
Neee! Nehogy gyere nekem a BUGS részben említett szöveggel, mert kinyomtatom, és a fejed köré tekerem! :-)
- A hozzászóláshoz be kell jelentkezni
Nem csak az...
Általában pl. szoktam vlock -a -t nyomni ha elmegyek a géptől...
És az is hasznos, hogy ha netán ``fagyi'' van, akkor tudok sysrq*sub-ot nyomni.... De az nem hasznos ha vki. sysrq+k -t nyom, miközben nekem ott a vlock -a...
- A hozzászóláshoz be kell jelentkezni
En erre eddig 2 dolgot hasznaltam. Az egyik, hogy atmegyek a masik szobaba, benyomom hugom gepet, es be-ssh-zok rola, azt ujrainditom :)
A masik pedig a power button.
Beallitasa: (Fejbol, gentoo alatt, gondolom a tobbi alatt is hasonlo)
Belerakom a kernelbe a Power Button tamogatast, ami valahol a Power Management/ACPI resznel talalhato.
Felrakom az acpid nevu daemont (emerge acpid)
Konfiguralom a daemont. Ami kb. annyi, hogy a konfig file-jaba ami 2 soros kikommentezem, hogy allitsa le a gepet. (emacs /etc/acpid/valahol..)
Majd beallitom, hogy automatikusan elinduljon. (rc-update add acpid boot)
Innentol, ha valami gaz van, csak megnyomom a Power gombot es szabalyosan leallitja a gepet. Nalam volt mar olyan, hogy elindult a gdm es behalt a billentyuzet, bejelentkezni se tudtam, meg kiloni az X-et se, akkor nagyon jol jott.
Udv.
ProTech
- A hozzászóláshoz be kell jelentkezni
Vannak olyan esetek, hogy annyira megakad a rendszer, hogy sem ssh-zni, sem ACPI event-et figyelni nem tudsz. Ekkor meg a kernel kozvetlenul utasithato. Igy a Magic SysRq olyankor is hasznalhato altalaban, amikor mar mas nem.
- A hozzászóláshoz be kell jelentkezni