Πώς να εμφανίσετε όλες τις ενεργοποιημένες υπηρεσίες από το systemctl;

Πώς μπορώ να παραθέσω όλες τις "ενεργοποιημένες" υπηρεσίες από το "systemctl";

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

Λύση

Η εντολή systemctl list-unit-files | grep enabled θα εμφανίσει όλα τα ενεργοποιημένα αρχεία.

Αν θέλετε ποια από αυτά τρέχουν αυτή τη στιγμή, χρειάζεστε το systemctl | grep running.

Χρησιμοποιήστε αυτό που ψάχνετε. Ενεργοποιημένο, δεν σημαίνει ότι τρέχει. Και το ότι τρέχει δεν σημαίνει ότι είναι ενεργοποιημένο. Είναι δύο διαφορετικά πράγματα.

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

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

Σχόλια (15)

Το man systemctl δηλώνει:

--state=

Το όρισμα θα πρέπει να είναι μια λίστα με διαχωρισμό με κόμμα των καταστάσεων της μονάδας LOAD, SUB ή ACTIVE. Κατά την εμφάνιση της λίστας των μονάδων, εμφανίζονται μόνο εκείνες που βρίσκονται στις καθορισμένες καταστάσεις. Χρησιμοποιήστε το --state=failed για να εμφανίσετε μόνο αποτυχημένες μονάδες.

Επεξήγηση:

LOAD: Αντικατοπτρίζει αν ο ορισμός της μονάδας φορτώθηκε σωστά.
ACTIVE: Η κατάσταση ενεργοποίησης της μονάδας υψηλού επιπέδου, δηλαδή η γενίκευση του SUB.
SUB: Η κατάσταση ενεργοποίησης μονάδας χαμηλού επιπέδου, οι τιμές εξαρτώνται από τον τύπο της μονάδας.

Αν και μπορείτε επίσης να το χρησιμοποιήσετε για να εμφανίσετε μόνο τις μονάδες με ενεργοποιημένη:

systemctl list-unit-files --state=enabled

Εάν μια μονάδα είναι ενεργοποιημένη αυτό σημαίνει ότι το σύστημα θα την ξεκινήσει κατά την εκκίνηση. Αν και το να θέσετε κάτι σε ενεργό δεν το ξεκινάει στην πραγματικότητα, οπότε θα πρέπει να το κάνετε αυτό χειροκίνητα, ή να επανεκκινήσετε το σύστημα αφού το θέσετε σε ενεργό.

Σχόλια (3)

Για να εμφανίσετε όλες τις υπηρεσίες systemd που είναι σε κατάσταση state=active και sub=running

systemctl list-units --type=service --state=running

Για να εμφανίσετε όλες τις υπηρεσίες systemd που είναι σε state=active και sub είτε τρέχουν είτε έχουν τερματιστεί

systemctl list-units --type=service --state=active
Σχόλια (0)