Myrdaal(mailto:jackalz@dyn.ml.org) Μετάφραση: Θέμης Παπασσιλέκας(mailto:panzerjager@netscape.net) Οκτ 1999
Το κείμενο αυτό το έγραψε ο Μyrdaal, και αποτελεί την τεκμηρίωση του Μagic SysRQ key που έρχεται ως επιλογή στους πυρήνες της σειράς 2.2.χ
1.
Τί είναι το μαγικό πλήκτρο SysRQ;
Είναι ένας 'μαγικός' συνδυασμός πλήκτρων στον οποίο ο πυρήνας θα ανταποκριθεί, ανεξαρτήτως του τί άλλο κάνει εκείνη τη στιγμή, εκτός κι αν είναι τελείως κολλημένος.
2.
Πώς ενεργοποιώ το μαγικό πλήκτρο SysRQ;
Χρειάζεται να απαντήσετε ΝΑΙ στο "Magic SysRQ key (CONFIG_MAGIC_SYSRQ)" όταν καθορίζετε τις ρυθμίσεις του πυρήνα. Αυτή η επιλογή υποστηρίζεται μόνο από τον πυρήνα 2.1.x και πάνω.
3.
Πώς χρησιμοποιώ το μαγικό πλήκτρο SysRQ;
* Στους x86:
Πατάτε τον συνδυασμό 'ALT-SysRQ-<πλήκτρο εντολής>'.Σημείωση: Μερικά (παλαιότερα;) πληκτρολόγια μπορεί να μην έχουν πλήκτρο SysRQ. Το πλήκτρο SysRQ είναι επίσης γνωστό ώς το πλήκτρο Print Screen.
* Σε SPARC:
Πατάτε 'ALT-STOP-<πλήκτρο εντολής>', πιστεύω,
* Σε άλλους:
Εάν γνωρίζετε συνδυασμούς για άλλες αρχιτεκτονικές, παρακαλώ να μου τις γνωστοποιήσετε προκειμένου να τους προσθέσω εδώ.
4.
Τί είναι τα πλήκτρα 'εντολών';
* 'r': Κλείνει την 'καθαρή' κατάσταση (raw mode) του πληκτρολογίου και το θέτει σε XLATE.
* 'k': Κλείνει όλα τα προγράμματα στην τρέχουσα κονσόλα.
* 'b': Επανεκκινεί αμέσως το σύστημα χωρίς να συγχρονίζει (sync) ή να απενεργοποιεί (unmount) τους δίσκους.
* 'ο': Σβήνει το σύστημα μέσω του APM (εάν υποστηρίζεται κι έχει ρυθμιστεί).
* 's': Προσπαθεί να συχρονίσει όλα τα ενεργοποιημένα συστήματα αρχείων.
* 'u': Προσπαθεί να επανενεργοποιήσει (remount) όλα τα ενεργοποιημένα συστήματα αρχείων σε μόνο-ανάγνωση (ro).
* 'p': Τυπώνει τους τρέχοντες καταχωρητές και δείκτες (flags) στην κονσόλα.
* 't': Τυπώνει μία λίστα τρεχουσών προγραμμάτων και τις πληροφορίες τους στην κονσόλα.
* 'm': Τυπώνει την τρέχουσα μνήμη στην κονσόλα.
* '0'-'9': Ρυθμίζει το επίπεδο ενημέρωσης του αρχείου λειτουργίας (log), ελέγχοντας ποια μηνύματα του πυρήνα θα τυπώνονται στην οθόνη (το '0', για παράδειγμα θα επέτρεπε να τυπωθούν μόνο επείγοντα μηνύματα, όπως τα PANICs και τα OOPSes).
* 'e': Στέλνει ένα SIGTERM σε όλες τις διεργασίες (processes), εκτός της init.
* 'i': Στέλνει ένα SIGKILL σε όλες τις διεργασίες, εκτός της init.
* 'l': Στέλνει ένα SIGKILL σε όλες τις διεργασίες, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΗΣ της init (το σύστημα δεν θα είναι πια λειτουργικό μετά από αυτό).
5.
Εντάξει, και σε τί μπορώ να τους χρησιμοποιήσω;
Βασικά, το un'R'aw είναι πολύ χρήσιμο όταν ο X Server ή ένα πρόγραμμα svgalib κρασάρει.
To sa'K' (system attention key - πλήκτρο προσοχής συστήματος) είναι χρήσιμο όταν θέλετε να κλείσετε ένα πρόγραμμα που δεν επιτρέπει αλλαγή κονσόλας (για παράδειγμα, τα X ή ένα πρόγραμμα svgalib).
Tο re'B'oot είναι χρήσιμο όταν δεν γίνεται να κλείσει το σύστημα. Αλλά θα πρέπει να κάνετε επίσης 'S'ync και 'U'mount πρώτα.
Το 'S'ync είναι σπουδαίο όταν το σύστημα έχει κολλήσει, επιτρέπει να συγχρονίσετε τους δίσκους και σίγουρα μειώνει την πιθανότητα απώλειας δεδομένων και του fsck. Σημειώστε ότι ο συγχρονισμός δεν έχει γίνει μέχρι να δείτε το μήνυμα 'ΟΚ' και 'DONE' στην οθόνη σας (εάν ο πυρήνας πραγματικά αγκομαχάει, μπορεί να μην τα δείτε ούτε και αυτά...).
Το 'U'mount είναι βασικά χρήσιμο όπως και το 'S'ync. Γενικά κάνω 'S'ync', 'U'mount και μετά 'R'eboot όταν το σύστημά μου κολλάει. Με έχει σώσει από πολλά fsck. Και πάλι, το unmount (remount read-only) δεν έχει γίνει μέχρι να δείτε τα μηνύματα 'ΟΚ" και 'Done' στην οθόνη σας.
Το επίπεδο καταγραφής ('0'-'9') είναι χρήσιμο όταν η κονσόλα σας γεμίζει με μηνύματα του πυρήνα που δεν θέλετε να δείτε. Το '0' θα τα περιορίσει στα πλέον επείγοντα (θα συνεχίσουν να καταγράφονται, πάντως, εάν οι syslogd/klogd είναι ενεργοί).
Τα t'E'rm και k'I'll είναι χρήσιμα όταν έχετε κάποια διεργασία που δεν ανταποκρίνεται και δεν μπορείτε να κλείσετε με άλλον τρόπο, ιδίως όταν παράγει (spawn) άλλες διεργασίες.
6.
Μερικές φορές το SysRQ μοιάζει να κολλάει κατά τη χρήση, τί να κάνω;
Αυτό συμβαίνει και σε μένα. Έχω βρεί ότι πατώντας shift, alt και ctrl και στις δύο πλευρές του πληκτρολογίου, και μετά πατώντας έναν αυθαίρετο συνδυασμό SysRQ (πχ, alt-SysRQ-z) μπορεί να διορθώσει το πρόβλημα. Αλλάζοντας σε άλλη κονσόλα (Alt+Fn) και μετά πάλι πίσω επίσης βοηθάει.
7.
Πατάω SysRQ, αλλά τίποτα δεν συμβαίνει, τί πάει στραβά;
Υπάρχουν μερικά πληκτρολόγια που δεν υποστηρίζουν το 'SysRQ', μπορείτε να δοκιμάσετε να τρέξετε 'showkey -s' και να πατήσετε το SysRQ για να δείτε εάν επιστρέφει κάποιον κώδικα 0x54. Εάν δεν το κάνει, μπορείτε να ορίσετε το SysRQ σε κάποιο άλλο πλήκτρο. Βρείτε τους κώδικες με το showkey και αλλάξτε τον ορισμό '#define SYSRQ_KEY 0x54' στο [/usr/src/linux/]include/asm/keyboard.h στον κώδικα του πλήκτρου που θέλετε να χρησιμοποιείστε, μετά ξαναχτίστε τον πυρήνα. Παρεπιπτόντως, για να βγείτε από το showkey, μην πατήσετε τίποτα για δέκα δευτερόλεπτα.
8.
Έχω κι άλλες ερωτήσεις, ποιον να ρωτήσω;
Μπορείτε να μου στείλετε email στο mailto:mydraal@deathsdoor.com[1], και θα απαντήσω το συντομότερο δυνατόν. Εάν αυτή η διεύθυνση δεν λειτουργεί, δοκιμάστε στην mailto:mydraal@jackalz.dyn.ml.org[2].
1: mailto:mydraal@deathsdoor.com
2: mailto:mydraal@jackalz.dyn.ml.org