Εάν θέλετε να μάθετε περισσότερα για τα συστήματα init, είναι σημαντικό να κατανοήσετε πρώτα τις εντολές systemctl και service και τις υποκείμενες διαφορές τους.
Βασικά Takeaways
- Οι εντολές υπηρεσίας και systemctl στο Linux είναι ζωτικής σημασίας και εξαιρετικά παρόμοιες, με το systemctl να είναι μια πιο ευέλικτη και ισχυρή εντολή.
- Τόσο το service όσο και το systemctl επιτρέπουν στους χρήστες να διαμορφώνουν και να αλληλεπιδρούν με υπηρεσίες συστήματος, αλλά ανήκουν σε διαφορετικά συστήματα αρχικοποίησης (SysVinit και systemd, αντίστοιχα).
- Η υπηρεσία λειτουργεί σε αρχεία συστήματος αρχικοποίησης στο /etc/init.d, ενώ το systemctl λειτουργεί με αρχεία στο /lib/systemd. Η εξοικείωση με τις δύο εντολές είναι σημαντική για την αποτελεσματική διαχείριση των υπηρεσιών συστήματος.
Το service και το systemctl είναι τόσο ζωτικής σημασίας όσο και εξαιρετικά παρόμοιες εντολές στο Linux. Είναι τόσο όμοια που είναι εύκολο να αναρωτηθεί κανείς ποιες διαφορές υπάρχουν μεταξύ τους—και εάν μπορείτε να χρησιμοποιήσετε τις δύο εντολές εναλλακτικά.
Η γνώση των λεπτομερέστερων λεπτομερειών σχετικά με την υπηρεσία και το systemctl θα σας επιτρέψει να εργαστείτε μαζί τους απρόσκοπτα.
Τι είναι η υπηρεσία Command στο Linux;
Στο Linux, η εντολή υπηρεσίας είναι ένα σενάριο περιτυλίγματος που επιτρέπει στους χρήστες να διαμορφώνουν εύκολα τις παραμέτρους και να αλληλεπιδρούν με τις υπηρεσίες του συστήματος. Προηγείται του systemd και λειτουργεί κυρίως με τα σενάρια που βρίσκονται στο /etc/init.d.
Παρόλο που το systemctl ξεπέρασε μεγάλο μέρος της προηγούμενης σημασίας της υπηρεσίας, εξακολουθεί να παραμένει σχετικό μέσω πολλών χαρακτηριστικών παλαιού τύπου.
Η μετατόπιση μεταξύ των συσχετισμένων συστημάτων αρχικοποίησης —SysVinit σε systemd— ήταν αμφιλεγόμενη, αλλά οι αυξανόμενες προκλήσεις για τη λειτουργία του αρχικού συστήματος έναρξης την έκαναν απαραίτητη.
Το systemd ξεκινά τις υπηρεσίες παράλληλα αντί για σειριακή ακολουθία, κάνοντας το χρόνο εκκίνησης ταχύτερο από το SysVinit—και προσφέρει ελαφρώς πιο εξελιγμένο έλεγχο του δαίμονες του συστήματος μέσω της διεπαφής γραμμής εντολών (CLI).
Τι είναι η εντολή systemctl στο Linux;
Όπως και το service, το systemctl είναι μια απίστευτα ευέλικτη εντολή που σας επιτρέπει να το κάνετε ενεργοποίηση, επαναφόρτωση, έναρξη, διακοπή και έλεγχος της κατάστασης των υπηρεσιών τρέχει στο σύστημά σας Linux.
Το systemctl χρησιμεύει ως μια εύχρηστη και ισχυρή διεπαφή για τη διαμόρφωση των αρχείων στο systemd—για παράδειγμα, χρειάζονται μόνο μία έως δύο εντολές για να απενεργοποιήσετε μια υπηρεσία κατά την εκκίνηση χρησιμοποιώντας το systemctl.
Το systemctl είναι συμβατό προς τα πίσω με το σύστημα αρχικοποίησης, το SysVinit, που χρησιμοποιείται κυρίως με την υπηρεσία. Το systemctl δεν χρησιμεύει ως άμεσος διάδοχος της υπηρεσίας, αλλά είναι πολύ πιο ευέλικτο όσον αφορά τα εργαλεία που προσφέρει για τη διαχείριση των υπηρεσιών συστήματος.
Μπορείτε να ολοκληρώσετε εργασίες όπως η κάλυψη ή η απενεργοποίηση μιας υπηρεσίας σε μόλις μία ή δύο γραμμές.
Οι διαφορές μεταξύ υπηρεσίας και συστήματοςctl
υπηρεσία και systemctl εξυπηρετούν σε μεγάλο βαθμό τον ίδιο σκοπό. Πολλές από τις ομοιότητες μεταξύ τους εισήχθησαν σκόπιμα για να επιτραπεί στους χρήστες μια πιο απρόσκοπτη μετάβαση από την υπηρεσία στο systemctl.
Ωστόσο, υπάρχουν μερικές διαφορές μεταξύ των δύο που πρέπει να γνωρίζετε καθώς αρχίζετε να εργάζεστε με το σύστημα προετοιμασίας στο Linux.
1. Διαφορετικά συστήματα Init
Η πιο σημαντική διαφορά μεταξύ υπηρεσίας και systemctl είναι ότι ανήκουν σε διαφορετικά συστήματα αρχικοποίησης. Η υπηρεσία ανήκει στο SysVinit (System V Init), αλλιώς γνωστή ως η κλασική διαδικασία προετοιμασίας Linux.
Το systemctl ανήκει στο systemd, τον διάδοχο του SysVinit και της σύγχρονης διαδικασίας προετοιμασίας που χρησιμοποιείται σε πολλά συστήματα Linux.
Επειδή το service και το systemctl αποτελούν μέρος διαφορετικών διαδικασιών προετοιμασίας, λειτουργούν σε αρχεία συστήματος αρχικοποίησης σε διαφορετικούς καταλόγους. Η υπηρεσία λειτουργεί με τα αρχεία συστήματος αρχικοποίησης που βρίσκονται /etc/init.d, ενώ το systemctl λειτουργεί με τα αρχεία συστήματος αρχικοποίησης που βρίσκονται /lib/systemd.
Γενικά, το σύστημα προετοιμασίας που πρόκειται να συναντήσετε σε εγκαταστάσεις Linux εκτός συσκευασίας είναι συστημικό — επομένως θα θέλετε να εξοικειωθείτε με τη χρήση του systemctl για να αλληλεπιδράσετε μαζί του.
Εάν σκοπεύετε να εργαστείτε με συστήματα που προηγούνται ή συμπίπτουν με την κυκλοφορία του systemd το 2010, δεν είναι κακό να εξοικειωθείτε και με τη χρήση της εντολής υπηρεσίας.
2. Συμβατότητα
Η υπηρεσία εξακολουθεί να είναι μια εξαιρετικά χρήσιμη εντολή όσον αφορά τη συμβατότητα - ως εντολή περιτυλίγματος, είναι σε θέση να ανακατευθύνει στον διαχειριστή υπηρεσιών που χρησιμοποιείται σε διαφορετικά συστήματα. Θα πρέπει να σχεδιάσετε να το μάθετε και να το κάνετε μέρος του οπλοστασίου σας, εάν εργάζεστε με μια ποικιλία συστημάτων Linux.
3. Υποκείμενες Λειτουργίες
Μια άλλη βασική διαφορά μεταξύ systemctl και υπηρεσίας έγκειται στον τρόπο λειτουργίας τους. Η υπηρεσία είναι μια εντολή υψηλού επιπέδου που ανακατευθύνει στον υποκείμενο διαχειριστή υπηρεσιών που χρησιμοποιείται σε ένα συγκεκριμένο σύστημα, πράγμα που σημαίνει ότι είναι αρκετά ευέλικτο μεταξύ συστημάτων. Μπορεί να ανακατευθύνει στο /etc/init.d, upstart ή ακόμα και systemctl. Οι εντολές systemctl, εν τω μεταξύ, αλληλεπιδρούν απευθείας με το systemd.
4. Ικανότητα
Όσον αφορά το τι μπορείτε να επιτύχετε, είναι ασφαλές να πούμε ότι το systemctl υπερβαίνει κατά πολύ την υπηρεσία σε ισχύ. Εκτός από τις βασικές λειτουργίες —όπως εκκίνηση, διακοπή, ενεργοποίηση ή απενεργοποίηση μιας συγκεκριμένης υπηρεσίας— μπορείτε επίσης να ρυθμίσετε προηγμένες διαμορφώσεις με το systemctl.
Η υπηρεσία είναι πιο περιορισμένη λόγω της απαιτούμενης συμβατότητάς της με τους υποκείμενους διαχειριστές υπηρεσιών στους οποίους βασίζεται.
Διαμορφώστε αποτελεσματικά τις υπηρεσίες συστήματος σε Linux
Το service και το systemctl είναι και οι δύο απίστευτα σημαντικές εντολές για τη διαχείριση των υπηρεσιών συστήματος. Είτε θέλετε απλώς να αξιοποιήσετε στο έπακρο το σύστημα Linux είτε σκοπεύετε να εργαστείτε σε εταιρικά δίκτυα, η εξοικείωση και με τις δύο εντολές είναι ζωτικής σημασίας.
Ευτυχώς, υπάρχουν πολλά υπέροχα σεμινάρια που μπορούν να σας βοηθήσουν να γίνετε κύριος στη χρήση του systemctl και της υπηρεσίας στο τερματικό.