Σύστημα Υπηρεσιών στο Linux

Εισαγωγή

:en:illbeyourserver.jpg

Για να ξεκινήσεις/σταματήσεις/επανεκκινήσεις/φορτώσεις μια υπηρεσία οποτεδήποτε στο Debian

/etc/init.d/<name of service> start/stop/restart/reload

π.χ. Για να επανεκκινήσεις την υπηρεσία εκτύπωσης

/etc/init.d/cups restart

Διαδικασία εκκίνησης στο Linux

Όταν το σύστημα εκκινείται, η διαδικασία init διαβάζει το αρχείο ρυθμίσεων /etc/inittab. Ανά πάσα στιγμή μπορούμε να την αναγκάσουμε να το ξαναδιαβάσει εάν της δόσουμε το HUP σήμα από το ksysguard ή από την κονσόλα ως root

kill -l HUP 1 

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

Οι υπηρεσίες που μπορούν να εκτελεστούν κατά την εκκίνηση βρίσκονται στο φάκελο /etc/init.d/

Στο Linux υπάρχουν επίπεδα εκκίνησης. Όταν η διαδικασία εκκίνησης βρίσκεται στο επίπεδο X όλοι οι σύνδεσμοι σε υπηρεσίες που βρίσκονται στον φάκελο /etc/rcX.d/ θα εκτελεστούν με αλφαβητική σειρά. 7 είναι τα συνήθη επίπεδα, δες /etc/inittab για λεπτομέρειες. Για να αλλάξεις επίπεδο ανά πάσα στιγμή τρέξε την telinit

telinit 1

θα πάει το σύστημα στο επίπεδο 1

  • 0 για τερματισμό συστήματος
  • 6 για επανεκκίνηση συστήματος
  • 1 για περιβάλλον μοναδικού χρήστη (μόνο ένα κέλυφος root,κανένας άλλος δεν μπορεί να συνδεθεί)
  • 2 πολλαπλών χρηστών χωρίς δικτυακό σύστημα αρχείων nfs
  • 3 πολλαπλών χρηστών - περιβάλλον κονσόλας
  • 4 χωρίς χρήση
  • 5 πολλαπλών χρηστών - γραφικό περιβάλλον

Όλοι οι σύνδεσμοι που το όνομά τους ξεκινά με Syyname εκκινούν μια υπηρεσία. Το yy εισάγεται για να οριστεί η σειρά εκκίνησης των υπηρεσιών και το name είναι το πραγματικό όνομα της υπηρεσίας που υπάρχει στο φάκελο /etc/init.d/

Όλοι οι συνδέσμοι που ξεκινούν με Kyyname σταματάνε μια υπηρεσία.

Πάντα να χρησιμοποιείται το sysvconfig ή το ksysv για να δημιουργούνται τέτοιοι συνδέσμοι έτσι ώστε να διατηρείται η αυτοματοποίηση στην διανομή Linux.

Δείτε επίσης το αρχείο /etc/init.d/README για λεπτομέρειες.

Δημιουργία Νέας Προσωπικής Υπηρεσίας

Για να δημιουργήσετε μία νέα προσωπική υπηρεσία υπάρχει ένα αρχείο υπόδειγμα /etc/init.d/skeleton Έστω ότι θέλετε να δημιουργήσετε μια υπηρεσία που ενεργοποιεί δρομολόγηση (βλέπε Διαμοιρασμός Σύνδεσης Internet) και που έχει εκτελέσιμο το /usr/bin/myrouter. Θέλουμε να ονομάσουμε την υπηρεσία myrouter επίσης άρα αντιγράφουμε αρχικά το αρχείο /etc/init.d/skeleton στο /etc/init.d/myrouter

cp /etc/init.d/skeleton /etc/init.d/myrouter

Το αρχείο αυτό περιέχει σχόλια που βοηθάνε στην κατανόηση της λειτουργίας του. Στο παράδειγμά μας θα αλλάξουμε τις εξής γραμμές:

Για την περιγραφή της υπηρεσίας

DESC="IP forwarding and internet routing"

Το όνομα της υπηρεσίας και του αρχείου στο /etc/init.d

NAME=myrouter

Οι ενέργειες που θα γίνουν κατά την εκκίνησή της με την εντολή /etc/init.d/myrouter start

do_start()
{
  /usr/bin/myrouter

Οι ενέργειες που θα γίνουν κατά τον τερματισμό της με την εντολή /etc/init.d/myrouter stop Στην περίπτωσή μας αρκεί να απενεργοποιήσουμε την προώθηση ip

do_stop()
{
   /bin/echo 0 > /proc/sys/net/ipv4/ip_forward

Δεν πρέπει να ξεχάσουμε να κάνουμε εκτελέσιμο το script

chmod a+x /etc/init.d/myrouter

Αυτό ήταν!! Τώρα με το ksysv ή το sysvconfig μπορούμε να ενεργοποιήσουμε ή να απενεργοποιήσουμε την χρήση της υπηρεσίας μας κατά την εκκίνηση!

Εάν θέλουμε να ορίσουμε πιο άμεσα την σειρά εκκίνησης π.χ. να εκκινεί μετά από όλα και να τερματίζει πριν από όλα (βεβαίως παίζει ρόλο και η αλφαβητική σειρά), μπορούμε να εκτελέσουμε

update-rc.d myrouter start 99 2 3 4 5 . stop 01 0 1 6 .

Για τις προκαθορισμένες ενάρξεις (S20 ..)

update-rc myrouter default

Για να μην εκτελείται η υπηρεσία κατά την εκκίνηση

update-rc myrouter remove

Εφαρμογές επεξεργασίας εκκίνησης υπηρεσιών

ksysv - γραφικός επεξεργαστής εκκίνησης υπηρεσιών

Ένας πολύ χρήσιμος επεξεργαστής εκκίνησης υπηρεσιών είναι ο ksysv. Χρησιμοποιεί επίσης τον kwrite για να αλλάξει τα αρχεία ρυθμίσεων των υπηρεσιών. Σύρε υπηρεσίες στα διάφορα επίπεδα εκκίνησης με την σειρά που θέλεις.

sysvconfig - επεξεργαστής εκκίνησης υπηρεσιών από κονσόλα

Ο βασικός επεξεργαστής εκκίνησης υπηρεσιών που τρέχει σε κονσόλα είναι ο sysvconfig. Ενεργοποίηση/Απενεργοποίηση υπηρεσιών θα δημιουργήσει/διαγράψει όλους τους αντίστοιχους συνδέσμους στα επίπεδα εκκίνησης

Παρόλ' αυτά κάποιες υπηρεσίες μπορεί να εμφανίζονται ενεργοποιημένες αλλά να μην έχουν συνδέσμους στα επίπεδα εκκίνησης. Γι' αυτό μπορείτε να απενεργοποιήσετε μια υπηρεσία και να την ενεργοποιήσετε πάλι για σιγουριά. Επίσης τσεκάρετε από το ksysv εάν ενεργοποιήθηκε. Καλό είναι πάντα να ελέγχετε με το ksysv καθώς η σειρά εκκίνησης μπορεί να μην είναι αυτή που θα θέλατε.

Πηγές

el/linux/debian/server/general_info.txt · Τελευταία τροποποίηση: 2009/12/23 16:54 (εξωτερική τροποποίηση)
 
Εκτός εάν αναφέρεται διαφορετικά, το περιεχόμενο σε αυτο το wiki διέπεται από την ακόλουθη άδεια: CC Attribution-Noncommercial-Share Alike 3.0 Unported
Hosted by WebAllDesign - Powered by LServerAdmin Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki WebAllDesign