Introduzione
La combinazione di tasti Magic Sys Req è una modalità di comunicazione con il kernel di Linux che permette di eseguire diversi comandi a basso livello utilizzando semplicemente la sequenza di tasti «Alt+R Sist+tasto» (equivalente anche a «Alt+Stamp+tasto»). Questo evento ha priorità assoluta su tutti gli altri processi attivi sul sistema, a prescindere anche dallo stato in cui si trova il sistema stesso. Proprio per questa proprietà, la combinazione Magic Sys Req viene spesso usata per recuperare sistemi bloccati o per riavviare il PC senza corrompere il proprio filesystem.
Se si possiede un kernel compilato da se, è opportuno verificare se è stata abilitata in fase di compilazione l'opzione CONFIG_MAGIC_SYSRQ, senza la quale la combinazione di tasti non potrebbe funzionare. |
Elenco delle combinazioni
Segue una tabella con le varie combinazioni di tasti e i loro effetti sul sistema.
Tasto |
Effetto |
0...9 |
imposta il livello di log, che controlla i tipi di messaggi del kernel che vengono stampati alla console |
b |
ravvia il sistema senza smontare le partizioni e/o sincronizzare i dischi |
c |
riavvia il servizio kexec produce un dump di sistema che contiene informazioni sul blocco avvenuto |
e |
invia il segnale SIGTERM a tutti i processi eccetto init (processo con PID 1) |
f |
invoca oom_kill che termina automaticamente il processo che sta consumando tutta la memoria disponibile |
h |
mostra in una console l'help. Qualunque altra lettera non assegnata ad un comando produrrà lo stesso effetto |
i |
invia il segnale SIGKILL a tutti i processi eccettuato init |
k |
termina tutti i processi nell'attuale console virtuale (molto usato per killare applicazioni grafiche) |
l |
invia il segnale SIGKILL a tutti i processi, incluso init |
m |
mostra nella console informazioni correnti sulla memoria. |
o |
arresta il sistema |
p |
invia alla console le informazioni sui registri e le flag correnti |
r |
passa la tastiera dalla modalità raw (quella utilizzata da programmi come X11 e svgalib) alla modalità XLATE |
s |
sincronizza tutti i filesystem montati |
t |
invia alla console una lista dei task attuali e le loro relative informazioni |
u |
rimonta tutti i filesystem in sola lettura |
v |
stampa a video informazioni sul processore SMP Voyager |
Sistemi in remoto
Se si possiede una macchina senza monitor o in connessione remota, le Magic Sys Req possono essere eseguiti sulla linea di comando sul terminale remoto.BR Per eseguire le combinazioni sopra elencate da linea di comando è sufficiente reindirizzare le varie variabili, tramite il servizio echo, su /proc/sysrq-trigger. Ad esempio, se si desidera riavviare il sistema (combinazione: «Alt+R Sist+b») è sufficiente digitare in un terminale con i permessi di super-utente:
echo b > /proc/sysrq-trigger
Sostituire la lettera b con una delle variabili sopracitate per avere l'effetto desiderato.
Abilitazione delle SysRq
Per motivi di sicurezza potrebbe essere opportuno abilitare e/o disabilitare le SysRq in base alle proprie necessità:
- per attivarle, digitare in un terminale il seguente comando con i permessi di super-utente:
echo 1 > /proc/sys/kernel/sysrq
- per disattivarle digitare invece:
echo 0 > /proc/sys/kernel/sysrq