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
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
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
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.