Εντολή inittab-Linux / Unix

inittab - μορφή του αρχείου inittab που χρησιμοποιείται από τη διαδικασία init που είναι συμβατή με sysv

Περιγραφή

Το αρχείο inittab περιγράφει τις διαδικασίες που ξεκινούν κατά την εκκίνηση και κατά τη διάρκεια της κανονικής λειτουργίας (π.χ. /etc/init.d/boot, /etc/init.d/rc, gettys ...). Το Init (8) διακρίνει πολλαπλά επίπεδα εκτέλεσης , εκάστη των οποίων μπορεί να έχει το δικό του σύνολο διαδικασιών που ξεκινούν. Οι έγκυρες διαδρομές είναι 0 - 6 συν A , B , και C για καταχωρήσεις ondemand . Μια καταχώρηση στο αρχείο inittab έχει την ακόλουθη μορφή:

id: runlevels: δράση: διαδικασία

Οι γραμμές που αρχίζουν με `# 'αγνοούνται.

Το id είναι μια μοναδική ακολουθία 1-4 χαρακτήρων που προσδιορίζει μια καταχώρηση στο inittab (για τις εκδόσεις του sysvinit που έχουν δημιουργηθεί με βιβλιοθήκες <5.2.18 ή a.out libraries το όριο είναι 2 χαρακτήρες).

Σημείωση: Για gettys ή άλλες διαδικασίες σύνδεσης, το πεδίο id πρέπει να είναι το tty επίθεμα του αντίστοιχου tty, π.χ. 1 για tty1 . Διαφορετικά, η λογιστική σύνδεσης μπορεί να μην λειτουργεί σωστά.

τα επίπεδα εκτέλεσης απαριθμούν τα επίπεδα εκτέλεσης για τα οποία πρέπει να ληφθεί η συγκεκριμένη ενέργεια.

η δράση περιγράφει τις ενέργειες που πρέπει να αναληφθούν.

διαδικασία καθορίζει τη διαδικασία που πρέπει να εκτελεστεί. Εάν το πεδίο διαδικασίας ξεκινάει με ένα χαρακτήρα `+ ', το init δεν θα κάνει utmp και wtmp για τη διαδικασία αυτή. Αυτό είναι απαραίτητο για gettys που επιμένουν να κάνουν το δικό τους utmp / wtmp νοικοκυριό. Αυτό είναι επίσης ένα ιστορικό σφάλμα.

Το πεδίο runlevels μπορεί να περιέχει πολλαπλούς χαρακτήρες για διαφορετικά επίπεδα εκτέλεσης. Για παράδειγμα, το 123 καθορίζει ότι η διαδικασία πρέπει να ξεκινάει σε επίπεδα εκτέλεσης 1, 2 και 3. Οι επιφάνειες εκτέλεσης για καταχωρήσεις ondemand μπορεί να περιέχουν ένα A , B ή C. Το πεδίο runlevels των καταχωρήσεων sysinit , boot και bootwait αγνοείται.

Όταν αλλάξει το επίπεδο εκτέλεσης του συστήματος, όλες οι διεργασίες που δεν έχουν καθοριστεί για το νέο επίπεδο εκτέλεσης θανατωθούν, πρώτα με το SIGTERM, στη συνέχεια με το SIGKILL.

Οι έγκυρες ενέργειες για το πεδίο δράσης είναι:

respawn

Η διαδικασία θα επανεκκινηθεί όποτε τερματίζεται (π.χ. getty).

Περιμένετε

Η διαδικασία θα ξεκινήσει μία φορά όταν θα εισαχθεί το καθορισμένο επίπεδο εκτέλεσης και το init θα περιμένει τον τερματισμό του.

μια φορά

Η διαδικασία θα εκτελεστεί μία φορά όταν εισαχθεί το καθορισμένο επίπεδο εκτέλεσης.

μπότα

Η διαδικασία θα εκτελεστεί κατά την εκκίνηση του συστήματος. Το πεδίο runlevels αγνοείται.

bootwait

Η διαδικασία θα εκτελεστεί κατά την εκκίνηση του συστήματος, ενώ ο init περιμένει τον τερματισμό του (π.χ. / etc / rc). Το πεδίο runlevels αγνοείται.

μακριά από

Αυτό δεν κάνει τίποτα.

κατα παραγγελια

Μια διαδικασία που επισημαίνεται με ένα επιτρεπτό επίπεδο εκτέλεσης θα εκτελείται κάθε φορά που θα καλέσει το καθορισμένο επίπεδο εκτέλεσης ondemand . Ωστόσο, δεν θα υπάρξει αλλαγή στο επίπεδο των επιπέδων (τα επίπεδα εκτέλεσης είναι `a ',` b' και `c ').

initdefault

Μια καταχώρηση initdefault καθορίζει το επίπεδο εκτέλεσης που πρέπει να εισαχθεί μετά την εκκίνηση του συστήματος. Εάν δεν υπάρχει κανένα, το init θα ζητήσει ένα επίπεδο εκτέλεσης στην κονσόλα. Το πεδίο διαδικασίας αγνοείται.

sysinit

Η διαδικασία θα εκτελεστεί κατά την εκκίνηση του συστήματος . Θα εκτελεστεί πριν από κάθε εισαγωγή boot ή bootwait . Το πεδίο runlevels αγνοείται.

powerwait

Η διαδικασία θα εκτελεστεί όταν η ισχύς πέσει κάτω. Το Init συνήθως ενημερώνεται για αυτό με μια διαδικασία που μιλάει σε ένα UPS συνδεδεμένο στον υπολογιστή. Ο Init θα περιμένει να ολοκληρωθεί η διαδικασία πριν συνεχίσετε.

powerfail

Όσο για το powerwait , εκτός από το ότι το init δεν περιμένει την ολοκλήρωση της διαδικασίας.

powerokwait

Αυτή η διαδικασία θα εκτελεστεί μόλις ενημερωθεί ότι η ενέργεια έχει αποκατασταθεί.

powerfailnow

Αυτή η διαδικασία θα εκτελεστεί όταν ο χρήστης init ειδοποιηθεί ότι η μπαταρία του εξωτερικού UPS είναι σχεδόν κενή και η τροφοδοσία της τροφοδοτείται (υπό τον όρο ότι το εξωτερικό UPS και η διαδικασία παρακολούθησης είναι σε θέση να ανιχνεύσουν αυτή την κατάσταση).

ctrlaltdel

Η διαδικασία θα εκτελεστεί όταν το init λάβει το σήμα SIGINT. Αυτό σημαίνει ότι κάποιος στην κονσόλα συστήματος έχει πατήσει τον συνδυασμό πλήκτρων CTRL-ALT-DEL . Συνήθως κάποιος θέλει να εκτελέσει κάποιο είδος τερματισμού είτε για να μπει σε επίπεδο ενός χρήστη είτε για να επανεκκινήσει το μηχάνημα.

kbrequest

Η διαδικασία θα εκτελεστεί όταν το init λάβει ένα μήνυμα από το χειριστή του πληκτρολογίου ότι στον πληκτρολόγιο της κονσόλας έχει πατηθεί ένας ειδικός συνδυασμός πλήκτρων.

Η τεκμηρίωση αυτής της λειτουργίας δεν έχει ολοκληρωθεί ακόμα. περισσότερη τεκμηρίωση μπορεί να βρεθεί στα πακέτα kbd-x.xx (το πιο πρόσφατο ήταν το kbd-0.94 τη στιγμή αυτού του γραψίματος). Βασικά θέλετε να χαρτογραφήσετε κάποιο συνδυασμό πληκτρολογίου στη δράση "KeyboardSignal". Για παράδειγμα, για να χαρτογραφήσετε το Alt-Uparrow για αυτό το σκοπό, χρησιμοποιήστε τα ακόλουθα στο αρχείο keymaps:

alt keycode 103 = ΠληκτρολόγιοSignal

ΠΑΡΑΔΕΙΓΜΑΤΑ

Αυτό είναι ένα παράδειγμα ενός inittab που μοιάζει με το παλιό inittab του Linux:

# inittab for linux id: 1: initdefault: rc :: bootwait: / etc / rc 1: 1: respawn: / etc / getty 9600 tty1 2: 1: respawn: / etc / getty 9600 tty2 3: 1: respawn: etc / getty 9600 tty3 4: 1: respawn: / etc / getty 9600 tty4

Αυτό το αρχείο inittab εκτελεί / etc / rc κατά την εκκίνηση και ξεκινά gettys στο tty1-tty4.

Ένα πιο περίπλοκο inittab με διαφορετικά επίπεδα εκτέλεσης (δείτε τα σχόλια μέσα):

# Επίπεδο για εκτέλεση σε id: 2: initdefault: # Αρχικοποίηση συστήματος πριν από οτιδήποτε άλλο. si :: sysinit: /etc/rc.d/bcheckrc # Runlevel 0,6 έχει σταματήσει και επανεκκίνηση, 1 είναι λειτουργία συντήρησης. l0: 0: wait: /etc/rc.d/rc.halt l1: 1: περιμένετε: /etc/rc.d/rc.single l2: 2345: wait: /etc/rc.d/rc.multi l6: 6: περιμένετε: /etc/rc.d/rc.reboot # Τι να κάνετε στο "χαιρετισμό 3 χεριών". ca :: ctrlaltdel: / sbin / shutdown -t5 -rf τώρα # Runlevel 2 & 3: getty στην κονσόλα, επίπεδο 3 επίσης getty στη θύρα μόντεμ. 1: 23: respawn: / sbin / getty tty1 VC linux 2: 23: respawn: / sbin / getty tty2 VC linux 3: 23: respawn: / sbin / getty tty3 VC linux 4:23: respawn: / sbin / getty tty4 VC linux S2: 3: respawn: / sbin / uugetty ttyS2 M19200

Δείτε επίσης

init (8), τελενίτη ( 8)

Σημαντικό: Χρησιμοποιήστε την εντολή man ( % man ) για να δείτε πώς χρησιμοποιείται μια εντολή στον υπολογιστή σας.