co masz na myśli przez włączone? Masz na myśli działające usługi?
Gen
7
@Gen włączenie usługi różni się znacznie od jej uruchomienia. Zobaczyć man systemctl.
Jos
Fascynujący. Najniższa ocena jest odpowiedzią najbardziej „poprawną”, mimo że zdecydowanie nie jest najlepszą odpowiedzią. To doskonałe pytanie (i odpowiedzi) jest interesującym przykładem tego, w jaki sposób systemd narusza od dawna (i genialne) zasady projektowania Unix & Co. / systemctl może robić dokładnie to, co chce (najbardziej doświadczeni użytkownicy uznają to za kompletne wzdęcie). Zaczynam rozumieć, dlaczego Linus Torvalds jest tak gwałtownie krytyczny wobec systemd.
BISI
Odpowiedzi:
411
systemctl list-unit-files | grep enabledwyświetli listę wszystkich włączonych .
Jeśli chcesz, które są aktualnie uruchomione , potrzebujesz systemctl | grep running.
Użyj tego, którego szukasz. Włączone, nie oznacza, że działa. A bieganie nie oznacza, że jest włączone. To są dwie różne rzeczy.
Włączone oznacza, że system uruchomi usługę przy następnym uruchomieniu. Jeśli więc włączysz usługę, nadal musisz ją ręcznie uruchomić lub uruchomić ponownie, a ona się uruchomi.
Uruchomienie oznacza, że aktualnie działa, ale jeśli nie jest włączone, nie uruchomi się ponownie po ponownym uruchomieniu.
denerwujące, że trzeba użyć zewnętrznego narzędzia (grep), aby pokazać te ważne informacje. Ale dziękuję za wskazanie nam drogi :)
Felipe Alvarez
34
@FelipeAlvarez Correct. Ale tak działa Linux. Wiele małych plików binarnych, które dobrze ze sobą współpracują. systemctl robi to, o co prosi, wyświetla listę usług. Nie ma wbudowanej komendy filtrującej do systemctl, ponieważ grep już istnieje i może to zrobić dobrze z wyjściem dowolnego programu. Tak było zawsze :)
Dorian
3
Zgadzam się i tak powinno być. Ale systemd już próbuje zrobić tak dużo, że zastanawiam się, dlaczego nie może wyświetlić listy włączonych usług?
Felipe Alvarez
5
systemctl | grep runningnic mi nie wymieniaj! Nawet jeśli coś działa, jest wymienione tylko dla jego statusu, na przykład:enabled, disabled, masked, static
Argument powinien być lista oddzielonych przecinkami jednostkowych LOAD, SUBlub ACTIVEpaństw. Podczas wyświetlania jednostek wyświetlaj tylko te w określonych stanach. Służy --state=faileddo wyświetlania tylko uszkodzonych jednostek.
Wyjaśnienie:
LOAD: Odzwierciedla, czy definicja jednostki została poprawnie załadowana. ACTIVE: Stan aktywacji jednostki wysokiego poziomu, tj. Uogólnienie SUB. SUB: Stan aktywacji niskiego poziomu, wartości zależą od typu jednostki.
Możesz tego także użyć do wyświetlania enabledjednostek tylko z:
systemctl list-unit-files --state=enabled
Jeśli jest to jednostka enabled, oznacza to, że system uruchomi ją podczas uruchamiania. Chociaż ustawienie czegoś enabledtak naprawdę nie oznacza starttego, więc będziesz musiał to zrobić ręcznie lub zrestartować system po ustawieniu tego na enabled.
man systemctl
.Odpowiedzi:
systemctl list-unit-files | grep enabled
wyświetli listę wszystkich włączonych .Jeśli chcesz, które są aktualnie uruchomione , potrzebujesz
systemctl | grep running
.Użyj tego, którego szukasz. Włączone, nie oznacza, że działa. A bieganie nie oznacza, że jest włączone. To są dwie różne rzeczy.
Włączone oznacza, że system uruchomi usługę przy następnym uruchomieniu. Jeśli więc włączysz usługę, nadal musisz ją ręcznie uruchomić lub uruchomić ponownie, a ona się uruchomi.
Uruchomienie oznacza, że aktualnie działa, ale jeśli nie jest włączone, nie uruchomi się ponownie po ponownym uruchomieniu.
źródło
systemctl | grep running
nic mi nie wymieniaj! Nawet jeśli coś działa, jest wymienione tylko dla jego statusu, na przykład:enabled, disabled, masked, static
systemctl list-unit-files --state=running
man systemctl
stwierdza:Wyjaśnienie:
LOAD
: Odzwierciedla, czy definicja jednostki została poprawnie załadowana.ACTIVE
: Stan aktywacji jednostki wysokiego poziomu, tj. UogólnienieSUB
.SUB
: Stan aktywacji niskiego poziomu, wartości zależą od typu jednostki.Możesz tego także użyć do wyświetlania
enabled
jednostek tylko z:Jeśli jest to jednostka
enabled
, oznacza to, że system uruchomi ją podczas uruchamiania. Chociaż ustawienie czegośenabled
tak naprawdę nie oznaczastart
tego, więc będziesz musiał to zrobić ręcznie lub zrestartować system po ustawieniu tego naenabled
.źródło
systemctl enable --now ...
--state=enabled
nie ma wpływu na systemową wersję 215 (na Raspbian 8 Jessie), ale działa na systemowej wersji 229 (na Ubuntu 16.04.03 Xenial).Aby wyświetlić listę wszystkich
systemd
usług, które są wstate=active
isub=running
Aby wyświetlić listę wszystkich usług,
systemd
które są włączonestate=active
i podrzędne, są uruchomione lub zakończoneźródło
Aby zobaczyć usługi „włączone”, w tym te, które są nadal w trakcie uruchamiania / uruchamiania:
Aby wyświetlić wszystkie aktualnie uruchomione usługi:
źródło
sshd
vs.ssh
isyslog
kontrarsyslog
.Przegląd wszystkich aktywnych i nieudanych usług:
źródło