La combinazione di tasti Magic (o , ) è 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 ++tasto (o ++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 Per attivare le combinazioni Magic bisogna:
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 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 ... imposta il livello di log della console, livello che decide il tipo di messaggi del kernel che devono essere inviati alla console riavvio immediato del sistema, senza smontare le partizioni o sincronizzare i dischi riavvia kexec e produce un dump di sistema che contiene informazioni sul blocco avvenuto visualizza tutti i Lock attivi (necessaria l'opzione CONFIG_LOCKDEP durante la compilazione del kernel) invia il segnale SIGTERM a tutti i processi eccetto init (PID 1) 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 se si sta utilizzando Kernel Mode Setting, passa al console framebuffer del kernel.se è presente il kernel debugger kdb, lo avvia. mostra nella console un documento di aiuto (valido per ogni altra lettera non assegnata ad un comando) invia il segnale SIGKILL a tutti i processi eccetto init (PID 1) "scongela" forzatamente i filesystems "congelati" dalla chiamata ioctl FIFREEZE. 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 invia il segnale SIGKILL a tutti i processi, compreso init (PID 1) mostra nella console le informazioni attuali sulla memoria resetta al default il livello nice di tutti i processi ad alta priorità e sistema real-time spegne completamente il sistema invia alla console le informazioni sui registri e le flag attuali visualizza tutti i timer ad alta risoluzione e le fonti di clock passa la tastiera dalla modalità raw, quella utilizzata da programmi come X11 e svgalib, alla modalità XLATE sincronizza i filesystem montati mostra nella console una lista dei processi attuali con le relative informazioni rimonta tutti i filesystem montati in modalità di sola lettura ripristina forzatamente il framebuffer della console.per i processori ARM: esegue il dump del buffer ETM.per il processore SMP Voyager: mostra le informazioni visualizza la lista dei processi bloccati (in stato D) utilizzato dall'interfaccia xmon su piattaforma PPC/PowerPC. visualizza i registri della CPU (specifico di SPARC-64) esegue il dump del buffer ftrace stampa la lista dei tasti magic SysRq disponibili
Utilizzo Un uso comune del tasto "Magic " è 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 ":
unaw (passa la tastiera dalla modalità raw, quella utilizzata da programmi come X11 e svgalib, alla modalità XLATE), trminate (invia SIGTERM a tutti i processi, permettendo loro di terminare in modo pulito; ad alcuni, potrebbe essere necessario un certo tempo), kll (invia SIGKILL a tutti i processi, forzandoli a terminare immediatamente), ync (scarica su disco tutti i dati della cache), nmount (rimonta tutti i file system in sola lettura), reoot.
Quando i tasti "Magic " 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 ++ (, ..., , in cui n è il numero massimo di consoles previste dal sistema) potrebbe forzare il ritorno ad una console di testo. ++ può essere utilizzato per tornare alla GUI (modalità grafica) se l'X server è ancora funzionante.
Note
Altri progetti
Collegamenti esterni
Categoria:Linux