title: Magic Sys Req
text: # 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.
  
  