Γνωρίστε το Linux: Ο κατάλογος /etc/init.d

Δοκιμάστε Το Όργανο Μας Για Την Εξάλειψη Των Προβλημάτων

Εάν χρησιμοποιείτε Linux πιθανότατα έχετε ακούσει για το init.d Ευρετήριο. Αλλά τι ακριβώς κάνει αυτός ο κατάλογος; Τελικά κάνει ένα πράγμα, αλλά κάνει αυτό ένα πράγμα για ολόκληρο το σύστημά σας, έτσι init.d Είναι πολύ σημαντικό. ο init.d Ο κατάλογος περιέχει μια σειρά από σενάρια έναρξης / διακοπής για διάφορες υπηρεσίες στο σύστημά σας. Όλα από acpid προς το x11-κοινό ελέγχεται από αυτόν τον κατάλογο. Φυσικά δεν είναι ακριβώς τόσο απλό.

Αν κοιτάξετε το /και τα λοιπά Κατάλογος θα βρείτε καταλόγους που έχουν τη μορφή rc # .d (Όπου # είναι ένας αριθμός αντικατοπτρίζει ένα συγκεκριμένο επίπεδο αρχικοποίησης - από 0 έως 6). Σε κάθε έναν από αυτούς τους καταλόγους υπάρχει ένας αριθμός από άλλα σενάρια που ελέγχουν τις διαδικασίες. Αυτά τα σενάρια θα ξεκινήσουν είτε με 'K' είτε 'S'. Όλα τα σενάρια «Κ» εκτελούνται πριν από τα σενάρια «S» Και ανάλογα με το πού βρίσκονται τα σενάρια θα καθορίσει πότε θα ξεκινήσουν τα σενάρια. Μεταξύ των καταλόγων, οι υπηρεσίες συστήματος συνεργάζονται σαν μια μηχανή λαδιού. Αλλά υπάρχουν στιγμές που πρέπει να ξεκινήσετε ή να σταματήσετε μια διαδικασία καθαρά και χωρίς να χρησιμοποιήσετε τις εντολές kill ή killall. Εκεί είναι το /etc/init.d ο κατάλογος έρχεται σε πρακτικό.

Τώρα εάν χρησιμοποιείτε μια διανομή όπως το Fedora, μπορείτε να βρείτε αυτόν τον κατάλογο /etc/rc.d/init.d . Ανεξάρτητα από την τοποθεσία, εξυπηρετεί τον ίδιο σκοπό.

Για να ελέγξετε οποιοδήποτε από τα σενάρια στο init.d χειροκίνητα πρέπει να έχετε πρόσβαση root (ή sudo). Κάθε σενάριο θα εκτελείται ως εντολή και η δομή της εντολής θα μοιάζει με:

/etc/init.d/command ΕΠΙΛΟΓΗ

Οπου εντολή είναι η πραγματική εντολή για εκτέλεση και ΕΠΙΛΟΓΗ μπορεί να είναι ένα από τα ακόλουθα:

  • αρχή
  • να σταματήσει
  • φορτώνω πάλι
  • επανεκκίνηση
  • δύναμη-επαναφόρτωση

Τις περισσότερες φορές θα χρησιμοποιείτε είτε ξεκίνα σταμάτα, ή επανεκκίνηση. Έτσι, εάν θέλετε να σταματήσετε το δίκτυό σας, μπορείτε να εκδώσετε την εντολή:

/etc/init.d/networking stop

Ή εάν κάνετε μια αλλαγή στο δίκτυό σας και πρέπει να το επανεκκινήσετε, μπορείτε να το κάνετε με την ακόλουθη εντολή:

/etc/init.d/netarting επανεκκίνηση

Μερικά από τα πιο κοινά σενάρια init σε αυτόν τον κατάλογο είναι:

  • δικτύωση
  • σάμπα
  • apache2
  • ftpd
  • sshd
  • περιστέρι
  • mysql

Φυσικά μπορεί να υπάρχουν πιο συχνά χρησιμοποιούμενα σενάρια στον κατάλογό σας - εξαρτάται από το τι έχετε εγκαταστήσει. Η παραπάνω λίστα προήλθε από μια εγκατάσταση του Ubuntu Server 8.10, οπότε μια τυπική εγκατάσταση στην επιφάνεια εργασίας θα είχε μερικά σενάρια τύπου δικτύου.

Αλλά τι γίνεται με το /etc/rc.local

Υπάρχει μια τρίτη επιλογή που χρησιμοποιούσα αρκετά. Αυτή η επιλογή είναι η /etc/rc.local γραφή. Αυτό το αρχείο εκτελείται μετά την εκτέλεση όλων των άλλων σεναρίων επιπέδου, οπότε είναι ασφαλές να βάλετε διάφορες εντολές που θέλετε να έχουν εκδοθεί κατά την εκκίνηση. Πολλές φορές θα τοποθετήσω οδηγίες συναρμολόγησης για πράγματα όπως το nfs σε αυτό το σενάριο. Αυτό είναι επίσης ένα καλό μέρος για να τοποθετήσετε σενάρια «αντιμετώπιση προβλημάτων». Για παράδειγμα, όταν είχα ένα μηχάνημα που, για κάποιο λόγο, η samba φάνηκε να μην θέλει να ξεκινήσει. Ακόμα και μετά από έλεγχο για να βεβαιωθείτε ότι ο δαίμονας Samba είχε ρυθμιστεί για να αρχικοποιηθεί κατά την εκκίνηση. Έτσι, αντί να ξοδεύω όλο τον χρόνο μου μπροστά σε αυτό, απλά έβαλα τη γραμμή:

/etc/init.d/samba έναρξη

στο /etc/rc.local σενάριο και η Samba λειτούργησε σαν γοητεία. Τελικά θα επέστρεφα και θα δυσκολευόμουν να πυροβολήσω αυτό το ζήτημα.

Τελικές σκέψεις

Το Linux είναι ευέλικτο. Το Linux είναι τόσο ευέλικτο, υπάρχουν σχεδόν αναπόφευκτα πολλοί τρόποι επίλυσης ενός προβλήματος. Η εκκίνηση μιας υπηρεσίας συστήματος είναι ένα τέτοιο ζήτημα. Με τη βοήθεια του /etc/init.d σύστημα (όπως επίσης /etc/rc.local ) μπορείτε να είστε σίγουροι ότι η υπηρεσία σας θα ξεκινήσει.