Magic Sys Req
La combinazione di tasti Magic R Sist (o SysRq, Sys Req) è una modalità di comunicazione con il kernel di Linux che può essere abilitata in fase di compilazione per mezzo dell'opzione CONFIG_MAGIC_SYSRQ
[1]. Permette di eseguire diversi comandi a basso livello semplicemente utilizzando una giusta sequenza del tipo Alt+R Sist+tasto (o Alt+Stamp+tasto), a prescindere dallo stato in cui si trova il sistema.
Viene spesso usata per recuperare sistemi bloccati o per riavviare il PC senza corrompere i file system.
Attivazione delle combinazioni Magic R Sist
[modifica | modifica wikitesto]Per attivare le combinazioni Magic R Sist bisogna[2]:
eseguire il comando:
echo "1" > /proc/sys/kernel/sysrq
oppure aggiungere la seguente riga nel file /etc/sysctl.conf:
kernel.sysrq = 1
Elenco delle combinazioni Magic R Sist
[modifica | modifica wikitesto]Le combinazioni si ottengono premendo i tasti Alt, R Sist ed un ulteriore tasto il cui valore seleziona il comando da eseguire. Affinché il comando venga ricevuto, è necessario mantenere premuto il tasto Alt.
I comandi sono così associati ai tasti:
Tasto | Effetto |
---|---|
0 ... 9 | imposta il livello di log della console, livello che decide il tipo di messaggi del kernel che devono essere inviati alla console |
b | riavvio immediato del sistema, senza smontare le partizioni o sincronizzare i dischi |
c | riavvia kexec e produce un dump di sistema che contiene informazioni sul blocco avvenuto |
d | visualizza tutti i Lock attivi (necessaria l'opzione CONFIG_LOCKDEP durante la compilazione del kernel) |
e | invia il segnale SIGTERM a tutti i processi eccetto init (PID 1) |
f | invoca oom_kill, il quale termina il processo che sta causando un eccessivo consumo di memoria, salvando il sistema da un possibile stato di memoria esaurita |
g | se si sta utilizzando Kernel Mode Setting, passa al console framebuffer del kernel[3]. se è presente il kernel debugger kdb, lo avvia[1]. |
h | mostra nella console un documento di aiuto (valido per ogni altra lettera non assegnata ad un comando) |
i | invia il segnale SIGKILL a tutti i processi eccetto init (PID 1) |
j | "scongela" forzatamente i filesystems "congelati" dalla chiamata ioctl FIFREEZE. |
k | termina tutti i processi nell'attuale console virtuale in modo forzato (kill). Può essere usato ad esempio per terminare la sessione grafica (server X). Questo uso è stato originariamente introdotto per imitare un tasto di accesso sicuro (Secure Access Key) intercettabile solo dal kernel |
l | invia il segnale SIGKILL a tutti i processi, compreso init (PID 1) |
m | mostra nella console le informazioni attuali sulla memoria |
n | resetta al default il livello nice di tutti i processi ad alta priorità e sistema real-time |
o | spegne completamente il sistema |
p | invia alla console le informazioni sui registri e le flag attuali |
q | visualizza tutti i timer ad alta risoluzione e le fonti di clock |
r | passa la tastiera dalla modalità raw, quella utilizzata da programmi come X11 e svgalib, alla modalità XLATE |
s | sincronizza i filesystem montati |
t | mostra nella console una lista dei processi attuali con le relative informazioni |
u | rimonta tutti i filesystem montati in modalità di sola lettura |
v | ripristina forzatamente il framebuffer della console[1]. per i processori ARM: esegue il dump del buffer ETM[4]. per il processore SMP Voyager: mostra le informazioni[5] |
w | visualizza la lista dei processi bloccati (in stato D) |
x | utilizzato dall'interfaccia xmon su piattaforma PPC/PowerPC. |
y | visualizza i registri della CPU (specifico di SPARC-64) |
z | esegue il dump del buffer ftrace |
(spazio) | stampa la lista dei tasti magic SysRq disponibili |
Utilizzo
[modifica | modifica wikitesto]Un uso comune del tasto "Magic R Sist" è per effettuare un riavvio sicuro di un sistema Linux, altrimenti bloccato.
Ciò può evitare la necessità di un fsck al successivo riavvio (e la probabilità di perdite di dati) e fornisce ad alcuni programmi la possibilità di salvare copie di emergenza del lavoro non ancora salvato (o di chiudersi in modo pulito). L'acronimo REISUB[6]: "Raising Elephants Is So Utterly Boring", "Reboot Even If System Utterly Broken" , "Riavvia Eventualmente Il Sistema Ufficialmente Bloccato" o semplicemente la parola "BUSIER" letta al contrario, sono spesso usati per ricordare la seguente sequenza di tasti "Magic R Sist":
- unRaw (passa la tastiera dalla modalità raw, quella utilizzata da programmi come X11 e svgalib, alla modalità XLATE),
- tErminate (invia SIGTERM a tutti i processi, permettendo loro di terminare in modo pulito; ad alcuni, potrebbe essere necessario un certo tempo),
- kIll (invia SIGKILL a tutti i processi, forzandoli a terminare immediatamente),
- Sync (scarica su disco tutti i dati della cache),
- Unmount (rimonta tutti i file system in sola lettura),
- reBoot.
Quando i tasti "Magic R Sist" sono utilizzati per terminare un programma grafico bloccato, questo non ha la possibilità di ripristinare la modalità testo e ciò può rendere la console completamente illeggibile. I comandi textmode (parte del pacchetto SVGAlib) e reset possono ripristinare la modalità testo e rendere la console di nuovo interpretabile.
Su sistemi che non includono il comando textmode, la sequenza Ctrl+Alt+F1 (F2, ..., Fn, in cui n è il numero massimo di consoles previste dal sistema) potrebbe forzare il ritorno ad una console di testo. Ctrl+Alt+F(n+1} può essere utilizzato per tornare alla GUI (modalità grafica) se l'X server è ancora funzionante.
Note
[modifica | modifica wikitesto]- ^ a b c Linux Magic System Request Key Hacks, su kernel.org. URL consultato il 7 aprile 2018.
- ^ Linux Howtos: Tips and Tricks → Magic SysRq Key, su linuxhowtos.org. URL consultato il 9 luglio 2014.
- ^ Jesse Barnes, DRM: i915: add mode setting support (commit), in Git, Kernel, 7 novembre 2008. URL consultato il 31 agosto 2013.
- ^ linux/sysrq.rst at master · torvalds/linux · GitHub, su github.com. URL consultato il 7 aprile 2018.
- ^ QA/Sysrq - Fedora Project Wiki, su fedoraproject.org. URL consultato il 7 aprile 2018.
- ^ Jacob Peddicord, Fix a Frozen System with the Magic SysRq Keys, su fosswire.com, Fosswire, 8 settembre 2007. URL consultato il 31 agosto 2013.
Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su Magic Sys Req
Collegamenti esterni
[modifica | modifica wikitesto]- Come attivare i Magic SysRq Key, su linuxhowtos.org.