Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 10964|Απάντηση: 8

[Linux] Ο διαχειριστής υπηρεσιών Linux systemd εξηγείται λεπτομερώς

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 28/11/2021 10:02:32 π.μ. | | | |
Το systemd είναι ένα σύνολο βασικών δομικών στοιχείων για συστήματα Linux. Παρέχει έναν διαχειριστή συστήματος και υπηρεσιών που εκτελεί και εκκινεί το υπόλοιπο σύστημα ως PID 1.

Το systemd παρέχει επιθετικές δυνατότητες παραλληλοποίησης, χρησιμοποιεί υποδοχές και ενεργοποίηση D-Bus για την εκκίνηση υπηρεσιών, παρέχει εκκίνηση δαιμόνων κατ' απαίτηση, χρησιμοποιεί ομάδες ελέγχου Linux για την παρακολούθηση διεργασιών, διατηρεί προσαρτήσεις και σημεία αυτόματης προσάρτησης και εφαρμόζει καλά σχεδιασμένη λογική ελέγχου υπηρεσιών που βασίζεται στην εξάρτηση από συναλλαγές. Το systemd υποστηρίζει σενάρια έναρξης SysV και LSB και μπορεί να αντικαταστήσει το sysvinit.

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

Το αρχείο διαμόρφωσης του systemd υπάρχει στους ακόλουθους τρεις φακέλους:         

/etc/systemd/system 存放系统启动的默认级别及启动的unit的软连接,优先级最高。

/run/systemd/system 系统执行过程中产生的服务脚本,优先级次之。

/usr/lib/systemd/system 存放系统上所有的启动文件,优先级最低。
Αναθεώρηση:

Το Linux εξετάζει την έξοδο καταγραφής της υπηρεσίας Systemd
https://www.itsvse.com/thread-10154-1-1.html

Jenkins (4) Προσθέστε έναν κόμβο Linux και καταχωρήστε τον ως υπηρεσία
https://www.itsvse.com/thread-10120-1-1.html

Το CentOS 7 εγκαθιστά τον εξαγωγέα κόμβων
https://www.itsvse.com/thread-9969-1-1.html

Προφίλ μονάδας

Ένα αρχείο μονάδας στο systemd είναι ένα αρχείο που κωδικοποιεί πληροφορίες σχετικά με τις διάφορες μονάδες που μπορεί να διαχειριστεί το systemd, συμπεριλαμβανομένων υπηρεσιών, υποδοχών, συσκευών κ.λπ. Αυτός ο οδηγός εστιάζει στις υπηρεσίες, οπότε το αρχείο μονάδας με το οποίο εργαζόμαστε είναι το αρχείο .service. Το αρχείο διαμόρφωσης της συσκευής varnish.service περιέχει πληροφορίες σχετικά με τον τρόπο με τον οποίο το systemd πρέπει να εκτελεί, να παρακολουθεί και να διαχειρίζεται τον δαίμονα του βερνικιού.

Το μπλοκ [Μονάδα] είναι συνήθως το πρώτο μπλοκ του αρχείου διαμόρφωσης και χρησιμοποιείται για τον καθορισμό των μεταδεδομένων της Μονάδας και του τρόπου με τον οποίο σχετίζονται με άλλες Μονάδες. Τα κύρια πεδία του είναι τα εξής.

  • Περιγραφή: Μια σύντομη περιγραφή
  • Τεκμηρίωση: Η διεύθυνση του εγγράφου
  • Απαιτεί: Άλλες μονάδες από τις οποίες εξαρτάται η τρέχουσα μονάδα και εάν δεν λειτουργούν, η τρέχουσα μονάδα θα αποτύχει να ξεκινήσει
  • Θέλει: Άλλες Μονάδες που λειτουργούν με την τρέχουσα Μονάδα, εάν δεν εκτελούνται, η τρέχουσα Μονάδα δεν θα αποτύχει να ξεκινήσει
  • BindsTo: Παρόμοια με το Requires, καθορίζει μια μονάδα που προκαλεί τη διακοπή της λειτουργίας της τρέχουσας μονάδας εάν βγει
  • Πριν: Εάν πρόκειται να ξεκινήσει και η Μονάδα που καθορίζεται σε αυτό το πεδίο, πρέπει να ξεκινήσει μετά την τρέχουσα Μονάδα
  • Μετά: Εάν πρόκειται να ξεκινήσει και η μονάδα που καθορίζεται σε αυτό το πεδίο, πρέπει να ξεκινήσει πριν από την τρέχουσα μονάδα
  • Διενέξεις: Η μονάδα που καθορίζεται εδώ δεν μπορεί να εκτελεστεί ταυτόχρονα με την τρέχουσα μονάδα
  • Κατάσταση... : Οι προϋποθέσεις που πρέπει να πληρούνται για να λειτουργήσει η τρέχουσα μονάδα, διαφορετικά δεν θα εκτελεστεί
  • Ισχυρίζομαι... : Οι συνθήκες που πρέπει να πληρούνται για να εκτελεστεί η τρέχουσα μονάδα, διαφορετικά θα αναφερθεί η αποτυχία εκκίνησης

Το [Install] είναι συνήθως το τελευταίο μπλοκ του αρχείου ρυθμίσεων που καθορίζει τον τρόπο εκκίνησης και εάν θα εκκινήσετε. Τα κύρια πεδία του είναι τα εξής.

  • WantedBy: Η τιμή του είναι ένας ή περισσότεροι Στόχοι και όταν η τρέχουσα Μονάδα είναι ενεργή (enable), ο συμβολικός σύνδεσμος τοποθετείται σε έναν υποκατάλογο κάτω από τον κατάλογο /etc/systemd/system με την κατάληξη Target name + .wants
  • RequiredBy: Η τιμή του είναι ένας ή περισσότεροι Στόχοι και όταν η τρέχουσα Μονάδα είναι ενεργή, ο συμβολικός σύνδεσμος θα τοποθετηθεί σε έναν υποκατάλογο κάτω από τον κατάλογο /etc/systemd/system με το επίθημα Target name + .required
  • Ψευδώνυμο: Το ψευδώνυμο που μπορεί να χρησιμοποιήσει η τρέχουσα μονάδα για να ξεκινήσει
  • Επίσης: Όταν ενεργοποιηθεί η τρέχουσα μονάδα, θα ενεργοποιηθούν και άλλες μονάδες ταυτόχρονα

Το μπλοκ [Υπηρεσία] χρησιμοποιείται για τη διαμόρφωση της Υπηρεσίας και μόνο οι μονάδες του τύπου Υπηρεσία έχουν αυτό το μπλοκ. Τα κύρια πεδία του είναι τα εξής.

  • Τύπος: Καθορίζει τη συμπεριφορά της διεργασίας κατά την εκκίνηση. Έχει τις ακόλουθες τιμές.
  • Type=simple: Η προεπιλεγμένη τιμή, εκτελέστε την εντολή που καθορίζεται από το ExecStart για να ξεκινήσει η κύρια διαδικασία
  • type=forking: Η διακλάδωση δημιουργεί μια θυγατρική διεργασία από τη γονική διεργασία, η οποία θα βγει αμέσως μετά τη δημιουργία
  • Type=oneshot: Μια εφάπαξ διεργασία, το Systemd θα περιμένει να βγει η τρέχουσα υπηρεσία πριν συνεχίσει την εκτέλεση
  • Type=dbus: Η τρέχουσα υπηρεσία ξεκινά μέσω D-Bus
  • type=notify: Όταν ξεκινήσει η τρέχουσα υπηρεσία, το Systemd θα ειδοποιηθεί και θα συνεχίσει την εκτέλεση
  • type=idle: Η τρέχουσα υπηρεσία θα εκτελεστεί μόνο εάν εκτελεστούν άλλες εργασίες
  • ExecStart: Η εντολή για την έναρξη της τρέχουσας υπηρεσίας
  • ExecStartPre: Η εντολή που εκτελέστηκε πριν από την έναρξη της τρέχουσας υπηρεσίας
  • ExecStartPost: Η εντολή που εκτελείται μετά την εκκίνηση της τρέχουσας υπηρεσίας
  • ExecReload: Η εντολή που εκτελείται κατά την επανεκκίνηση της τρέχουσας υπηρεσίας
  • ExecStop: Η εντολή που εκτελείται όταν διακόπτεται η τρέχουσα υπηρεσία
  • ExecStopPost: Διακοπή της εντολής που εκτελείται όταν εξυπηρετείται
  • RestartSec: Ο αριθμός των δευτερολέπτων μεταξύ της αυτόματης επανεκκίνησης της τρέχουσας υπηρεσίας
  • Restart: Καθορίζει τις συνθήκες υπό τις οποίες το Systemd θα επανεκκινήσει αυτόματα την τρέχουσα υπηρεσία, με πιθανές τιμές όπως πάντα, on-success, on-failure, on-nonnormal, on-abort, on-watchdog
  • TimeoutSec: Καθορίζει τον αριθμό των δευτερολέπτων που περιμένει το Systemd πριν διακόψει την τρέχουσα υπηρεσία
  • Περιβάλλον: Καθορίστε τη μεταβλητή περιβάλλοντος

Εργαλείο διαχείρισης Systemctl

Η διαχείριση προγράμματος στο CentOS γίνεται βασικά από το εργαλείο systemctl.

Υπηρεσία εκκίνησης:

systemctl έναρξη όνομα.υπηρεσία

Διακοπή υπηρεσίας:

systemctl stop name.service

Επανεκκινήστε την υπηρεσία:

systemctl επανεκκίνηση όνομα.υπηρεσία

Προβολή κατάστασης:

systemctl status name.service

Επανεκκίνηση υπό όρους:

Εάν η υπηρεσία ξεκίνησε πριν, θα επανεκκινηθεί και εάν η υπηρεσία δεν ξεκινήσει, δεν θα λειτουργήσει

systemctl try-restart name.service

Επαναφόρτωση ή επανεκκίνηση:

Επαναλάβετε πρώτα τη φόρτωση και εάν η επαναφόρτωση δεν είναι επιτυχής, κάντε επανεκκίνηση

systemctl επαναφόρτωση-ή-επανεκκίνηση name.service

Επαναφόρτωση ή επανεκκίνηση υπό όρους:

systemctl επαναφόρτωση-ή-δοκιμή-επανεκκίνηση name.service

Ορίζει εάν η υπηρεσία μπορεί να ρυθμιστεί από το χρήστη για την έναρξη της κατάστασης

systemctl unmask name.service

systemctl mask name.service απαγορεύεται

Δείτε την τρέχουσα κατάσταση ενεργοποίησης της υπηρεσίας:

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

systemctl είναι ενεργό όνομα.υπηρεσία

Δείτε όλες τις υπηρεσίες που έχουν ενεργοποιηθεί:

-t Καθορίζει τον τύπο της μονάδας που εμφανίζεται.

--Όλα εμφανίζουν μια πιο λεπτομερή λίστα πληροφοριών.

-ένα ισοδύναμο --όλα

systemctl λίστα-μονάδες

systemctl list-units -t υπηρεσία

systemctl list-units -t service -a

Δείτε όλες τις υπηρεσίες:

systemctl list-units -a

Δείτε όλες τις καταστάσεις υπηρεσιών:

systemctl λίστα-μονάδα-αρχεία

-a 、--all: Δείτε την κατάσταση όλων των υπηρεσιών

-t 、--type: Καθορίζει τον τύπο της μονάδας που θα προβληθεί

loaded: Το αρχείο διαμόρφωσης φορτώθηκε, φορτώθηκε στη μνήμη

active(running): Εκτελέσεις που υποβάλλονται σε συνεχή επεξεργασία μία ή περισσότερες φορές

active(exited): Η εφάπαξ διαμόρφωση ολοκληρώθηκε με επιτυχία

active(waiting): Εκτελείται, αναμονή για ένα συμβάν

inactive:不运行

enabled:开机启动

disabled:开机不启动

static:开机不启动,但可被另一个启用的服务激活

Χρησιμοποιείται για τη λίστα σε ποια επίπεδα λειτουργίας είναι ενεργοποιημένη και απενεργοποιημένη η υπηρεσία

ls /etc/systemd/system/*.wants/sshd.service

systemctl list-unit-files --type target --all

Για να ρυθμίσετε την υπηρεσία ώστε να μην ξεκινά:

systemctl απενεργοποιήστε τη μονάδα ονόματος υπηρεσίας

Ελέγξτε εάν η υπηρεσία έχει εκκινηθεί και ξεκινήσει:

systemctl είναι ενεργοποιημένο όνομα.υπηρεσία

Δείτε τις εξαρτήσεις υπηρεσιών:

systemctl list-dependencies όνομα.υπηρεσία
systemctl list-depebdencies

Υπηρεσία βαρέων φορτίων:

systemctl δαίμονας-επαναφόρτωση

Σκοτώστε τη διαδικασία:

systemctl kill όνομα διαδικασίας

Πόροι:

Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Η σύνδεση με υπερσύνδεσμο είναι ορατή.





Προηγούμενος:Το Linux δοκιμάζει τη συνδεσιμότητα LDAP χρησιμοποιώντας την εντολή Curl
Επόμενος:Πρόβλημα άδειας μεταφόρτωσης αρχείου vsftp
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 11/12/2021 5:35:26 μ.μ. |
[Μονάδα]Ένα μπλοκ είναι συνήθως το πρώτο μπλοκ ενός αρχείου διαμόρφωσης που καθορίζει τα μεταδεδομένα μιας Μονάδας και πώς σχετίζονται με άλλες Μονάδες. Τα κύρια πεδία του είναι τα εξής.

Περιγραφή: Μια σύντομη περιγραφή
Τεκμηρίωση: Η διεύθυνση του εγγράφου
Απαιτεί: Άλλες μονάδες από τις οποίες εξαρτάται η τρέχουσα μονάδα και εάν δεν λειτουργούν, η τρέχουσα μονάδα θα αποτύχει να ξεκινήσει
Θέλει: Άλλες Μονάδες που λειτουργούν με την τρέχουσα Μονάδα, εάν δεν εκτελούνται, η τρέχουσα Μονάδα δεν θα αποτύχει να ξεκινήσει
BindsTo: Παρόμοια με το Requires, καθορίζει μια μονάδα που προκαλεί τη διακοπή της λειτουργίας της τρέχουσας μονάδας εάν βγει
Πριν: Εάν πρόκειται να ξεκινήσει και η Μονάδα που καθορίζεται σε αυτό το πεδίο, πρέπει να ξεκινήσει μετά την τρέχουσα Μονάδα
Μετά: Εάν πρόκειται να ξεκινήσει και η μονάδα που καθορίζεται σε αυτό το πεδίο, πρέπει να ξεκινήσει πριν από την τρέχουσα μονάδα
Διενέξεις: Η μονάδα που καθορίζεται εδώ δεν μπορεί να εκτελεστεί ταυτόχρονα με την τρέχουσα μονάδα
Κατάσταση... : Οι προϋποθέσεις που πρέπει να πληρούνται για να λειτουργήσει η τρέχουσα μονάδα, διαφορετικά δεν θα εκτελεστεί
Ισχυρίζομαι... : Οι συνθήκες που πρέπει να πληρούνται για να εκτελεστεί η τρέχουσα μονάδα, διαφορετικά θα αναφερθεί η αποτυχία εκκίνησης
[Εγκαθιστώ]Συνήθως είναι το τελευταίο μπλοκ του αρχείου διαμόρφωσης που καθορίζει τον τρόπο εκκίνησης και εάν θα εκκινήσετε. Τα κύρια πεδία του είναι τα εξής.

WantedBy: Η τιμή του είναι ένας ή περισσότεροι Στόχοι και όταν η τρέχουσα Μονάδα είναι ενεργή (enable), ο συμβολικός σύνδεσμος τοποθετείται σε έναν υποκατάλογο κάτω από τον κατάλογο /etc/systemd/system με την κατάληξη Target name + .wants
RequiredBy: Η τιμή του είναι ένας ή περισσότεροι Στόχοι και όταν η τρέχουσα Μονάδα είναι ενεργή, ο συμβολικός σύνδεσμος θα τοποθετηθεί σε έναν υποκατάλογο κάτω από τον κατάλογο /etc/systemd/system με το επίθημα Target name + .required
Ψευδώνυμο: Το ψευδώνυμο που μπορεί να χρησιμοποιήσει η τρέχουσα μονάδα για να ξεκινήσει
Επίσης: Όταν ενεργοποιηθεί η τρέχουσα μονάδα, θα ενεργοποιηθούν και άλλες μονάδες ταυτόχρονα
[Υπηρεσία]Τα μπλοκ χρησιμοποιούνται για τη διαμόρφωση υπηρεσιών και μόνο οι μονάδες τύπου Service έχουν αυτό το μπλοκ. Τα κύρια πεδία του είναι τα εξής.

Τύπος: Καθορίζει τη συμπεριφορά της διεργασίας κατά την εκκίνηση. Έχει τις ακόλουθες τιμές.
Type=simple: Η προεπιλεγμένη τιμή, εκτελέστε την εντολή που καθορίζεται από το ExecStart για να ξεκινήσει η κύρια διαδικασία
type=forking: Η διακλάδωση δημιουργεί μια θυγατρική διεργασία από τη γονική διεργασία, η οποία θα βγει αμέσως μετά τη δημιουργία
Type=oneshot: Μια εφάπαξ διεργασία, το Systemd θα περιμένει να βγει η τρέχουσα υπηρεσία πριν συνεχίσει την εκτέλεση
Type=dbus: Η τρέχουσα υπηρεσία ξεκινά μέσω D-Bus
type=notify: Όταν ξεκινήσει η τρέχουσα υπηρεσία, το Systemd θα ειδοποιηθεί και θα συνεχίσει την εκτέλεση
type=idle: Η τρέχουσα υπηρεσία θα εκτελεστεί μόνο εάν εκτελεστούν άλλες εργασίες
ExecStart: Η εντολή για την έναρξη της τρέχουσας υπηρεσίας
ExecStartPre: Η εντολή που εκτελέστηκε πριν από την έναρξη της τρέχουσας υπηρεσίας
ExecStartPost: Η εντολή που εκτελείται μετά την εκκίνηση της τρέχουσας υπηρεσίας
ExecReload: Η εντολή που εκτελείται κατά την επανεκκίνηση της τρέχουσας υπηρεσίας
ExecStop: Η εντολή που εκτελείται όταν διακόπτεται η τρέχουσα υπηρεσία
ExecStopPost: Διακοπή της εντολής που εκτελείται όταν εξυπηρετείται
RestartSec: Ο αριθμός των δευτερολέπτων μεταξύ της αυτόματης επανεκκίνησης της τρέχουσας υπηρεσίας
Restart: Καθορίζει τις συνθήκες υπό τις οποίες το Systemd θα επανεκκινήσει αυτόματα την τρέχουσα υπηρεσία, με πιθανές τιμές όπως πάντα, on-success, on-failure, on-nonnormal, on-abort, on-watchdog
TimeoutSec: Καθορίζει τον αριθμό των δευτερολέπτων που περιμένει το Systemd πριν διακόψει την τρέχουσα υπηρεσία
Περιβάλλον: Καθορίστε τη μεταβλητή περιβάλλοντος


 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 11/12/2021 5:37:33 μ.μ. |
Τύπος=διακλάδωση
Το systemd πιστεύει ότι η υπηρεσία ξεκινά με επιτυχία όταν η διεργασία υπηρεσίας διακλαδωθεί και η γονική διεργασία εξέλθει. Για κανονικούς δαίμονες, εκτός εάν είστε βέβαιοι ότι αυτή η μέθοδος εκκίνησης δεν ανταποκρίνεται στις ανάγκες σας, μπορείτε να ξεκινήσετε με αυτόν τον τύπο. Με αυτόν τον τύπο εκκίνησης, το PIDFile = θα πρέπει επίσης να καθοριστεί έτσι ώστε το systemd να μπορεί να παρακολουθεί την κύρια διαδικασία της υπηρεσίας

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 15/12/2021 4:55:14 μ.μ. |
εντολή EnvironmentFile

Το EnvironmentFile είναι παρόμοιο με την οδηγία Environment, αλλά διαβάζει μεταβλητές περιβάλλοντος από ένα αρχείο κειμένου. Το αρχείο κειμένου πρέπει να περιέχει εκχωρήσεις μεταβλητών διαχωρισμένες με αλλαγές γραμμής

παράδειγμα

Μπορείτε να πάρετε αυτό το αρχείο περιβάλλοντος και να χρησιμοποιήσετε τις μεταβλητές του ως εξής:



 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 4/1/2022 3:56:55 μ.μ. |
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 5/1/2022 9:48:21 π.μ. |
docker προεπιλεγμένη διαδρομή αρχείου υπηρεσίας /usr/lib/systemd/system/docker.service

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 23/1/2022 10:57:56 μ.μ. |
Προβολή όλων των καταστάσεων υπηρεσίας



Ρωτήστε εάν μια υπηρεσία είναι ενεργοποιημένη, χρησιμοποιώντας το NFS ως παράδειγμα:

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 25/2/2025 5:01:08 μ.μ. |
Υπηρεσίες μαζικής εκκίνησης που ξεκινούν με ABC

 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 11/4/2025 3:57:14 μ.μ. |
DefaultTimeoutStartSec= και DefaultTimeoutStopSec= από προεπιλογή 90 δευτερόλεπτα στη Διαχείριση συστήματος και 90 δευτερόλεπτα στη Διαχείριση χρηστών.

Η σύνδεση με υπερσύνδεσμο είναι ορατή.

Προβάλετε τη διαμόρφωση της καθορισμένης υπηρεσίας με την ακόλουθη εντολή:


Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com