Πώς να διαγράψετε ένα αρχείο υπηρεσίας Systemd

Pos Na Diagrapsete Ena Archeio Yperesias Systemd



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

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

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







/lib/systemd/system Αρχεία σέρβις από τα ληφθέντα πακέτα
/etc/systemd/system Αρχεία υπηρεσίας από τον διαχειριστή συστήματος
~/.config/systemd/users Αρχεία υπηρεσιών από κανονικούς χρήστες

Έτσι, εάν γίνει λήψη ενός πακέτου και παρέχει δαίμονα και υπηρεσίες, τότε αυτά τα αρχεία θα αποθηκευτούν στο /lib/systemd/system Ευρετήριο. ο /etc/systemd/system κατάλογος περιέχει αρχεία υπηρεσίας που έχουν δημιουργηθεί από διαχειριστές συστήματος και μόνο οι χρήστες sudo μπορούν να τα τροποποιήσουν. Ενώ ~/.config/systemd/users κατάλογος περιέχει αρχεία υπηρεσίας που έχουν δημιουργηθεί από κανονικούς χρήστες.

Πώς να αποκτήσετε πρόσβαση στο αρχείο υπηρεσίας

Το πρώτο βήμα για τη διαγραφή ενός αρχείου υπηρεσίας είναι να βρείτε την ακριβή διαδρομή του. Για να βρείτε το μονοπάτι, χρησιμοποιήστε το κατάσταση systemctl εντολή με το όνομα της υπηρεσίας.

κατάσταση systemctl [ ΟΝΟΜΑ ΥΠΗΡΕΣΙΑΣ ]

Για να βρείτε το όνομα της υπηρεσίας, μπορείτε να παραθέσετε όλες τις υπηρεσίες που εκτελούνται.

systemctl list-unit-αρχεία --τύπος =υπηρεσία --κατάσταση =τρέξιμο

Εάν θέλετε να καταχωρίσετε όλες τις υπηρεσίες, χρησιμοποιήστε την εντολή systemctl με -τύπος και -κατάσταση επιλογές.

systemctl list-unit-αρχεία

Για παράδειγμα, για να βρείτε τη διαδρομή μονάδας του υπηρεσία μου.υπηρεσία , θα εκτελέσω την εντολή status.

systemctl status myservice.service

Η έξοδος δείχνει τη διαδρομή του αρχείου μονάδας στο Φορτωμένος Ενότητα.

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

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

Πώς να διαγράψετε το αρχείο υπηρεσίας

Για να διαγράψετε την υπηρεσία στο Linux, το systemctl και rm θα χρησιμοποιηθούν βοηθητικά προγράμματα της γραμμής εντολών. Χρησιμοποιήστε το systemctl για να διακόψετε και να απενεργοποιήσετε την υπηρεσία και, στη συνέχεια, χρησιμοποιήστε το rm για να αφαιρέσετε τα αρχεία υπηρεσίας από τον αντίστοιχο κατάλογο.

Για να διαγράψετε το αρχείο υπηρεσίας, ακολουθήστε τη σειρά εντολών που δίνεται παρακάτω.

sudo systemctl διακοπή SERVICE-NAME

sudo systemctl απενεργοποιήστε το SERVICE-NAME

sudo rm / lib / systemd / Σύστημα / ΟΝΟΜΑ ΥΠΗΡΕΣΙΑΣ #Υπηρεσία από το ληφθέν πακέτο

sudo rm / και τα λοιπά / systemd / Σύστημα / ΟΝΟΜΑ ΥΠΗΡΕΣΙΑΣ #Εξυπηρέτηση από τον διαχειριστή

sudo rm ~ / .config / systemd / χρήστες / ΟΝΟΜΑ ΥΠΗΡΕΣΙΑΣ #Εξυπηρέτηση από τον κανονικό χρήστη

sudo systemctl daemon-reload

sudo systemctl επαναφορά-αποτυχία

Πρώτον, συνιστάται η διακοπή της υπηρεσίας για να διασφαλιστεί ότι δεν εκτελείται κατά την αφαίρεση, αν και η απενεργοποίησή της θα αποτρέψει επίσης την εκ νέου εκκίνησή της. Στη συνέχεια, πρέπει να απενεργοποιηθεί, γεγονός που εμποδίζει την αυτόματη εκκίνηση της υπηρεσίας. Η απενεργοποίηση της υπηρεσίας καταργεί επίσης τους συμβολικούς συνδέσμους που δημιουργούνται στο .θέλει/ ή . απαιτεί/ καταλόγους. Μετά από αυτό, αφαιρέστε τα αρχεία υπηρεσίας χρησιμοποιώντας το rm εντολή από τον αντίστοιχο κατάλογο.

Φορτώστε ξανά τις διαμορφώσεις systemd χρησιμοποιώντας daemon-reload και την εκτέλεση επαναφορά-αποτυχία εντολή. Η εντολή reset-failed επαναφέρει όλες τις υπηρεσίες με αποτυχημένη κατάσταση.

Παράδειγμα

Σε αυτό το παράδειγμα, ας διαγράψουμε μια υπηρεσία που δημιουργήθηκε από έναν διαχειριστή συστήματος. Το όνομα της υπηρεσίας είναι υπηρεσία μου.υπηρεσία και τοποθετείται στο /etc/systemd/system Ευρετήριο.

Ελέγξτε την κατάσταση της υπηρεσίας.

systemctl status myservice.service

Η υπηρεσία λειτουργεί. σημειώστε το μονοπάτι έναντι του Φορτωμένος τμήμα και καθιστώ ανίκανο η υπηρεσία.

sudo systemctl απενεργοποιήστε το myservice.service

Θα αφαιρέσει επίσης τον συμβολικό σύνδεσμο από το /etc/systemd/system Ευρετήριο.

Στη συνέχεια, αφαιρέστε το αρχείο υπηρεσίας χρησιμοποιώντας το rm διαδρομή αρχείου εντολών και υπηρεσίας.

sudo rm / και τα λοιπά / systemd / Σύστημα / υπηρεσία μου.υπηρεσία

Τώρα, φορτώστε ξανά τη διαμόρφωση systemd για να εφαρμόσετε τις αλλαγές.

systemctl daemon-reload

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

συμπέρασμα

Η διαγραφή μιας υπηρεσίας γίνεται υποχρεωτική εάν εκτελείται, ακόμα κι αν δεν είναι πλέον απαραίτητη. Μπορεί να καταναλώσει πόρους του συστήματος εάν αφεθεί χωρίς επίβλεψη. Σε αυτόν τον οδηγό, κάλυψα μια πλήρη μέθοδο διαγραφής μιας υπηρεσίας από το Linux. Πρώτα, προσδιορίστε το όνομα και τη διαδρομή της υπηρεσίας και, στη συνέχεια, απενεργοποιήστε την. Μετά από αυτό, αφαιρέστε το αρχείο υπηρεσίας από τον αντίστοιχο κατάλογο και φορτώστε ξανά τις διαμορφώσεις systemd για να ολοκληρώσετε τη διαδικασία.