Magic Sys Req

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

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

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.

  1. ^ a b c Linux Magic System Request Key Hacks, su kernel.org. URL consultato il 7 aprile 2018.
  2. ^ Linux Howtos: Tips and Tricks → Magic SysRq Key, su linuxhowtos.org. URL consultato il 9 luglio 2014.
  3. ^ Jesse Barnes, DRM: i915: add mode setting support (commit), in Git, Kernel, 7 novembre 2008. URL consultato il 31 agosto 2013.
  4. ^ linux/sysrq.rst at master · torvalds/linux · GitHub, su github.com. URL consultato il 7 aprile 2018.
  5. ^ QA/Sysrq - Fedora Project Wiki, su fedoraproject.org. URL consultato il 7 aprile 2018.
  6. ^ 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]

Collegamenti esterni

[modifica | modifica wikitesto]