# 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. 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:
eseguire il comando:
oppure aggiungere la seguente riga nel file /etc/sysctl.conf:

## 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. se è presente il kernel debugger kdb, lo avvia. |
| 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. per i processori ARM: esegue il dump del buffer ETM. per il processore SMP Voyager: mostra le informazioni |
| 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: "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.