Tüm etkin servisler systemctl'den nasıl listelenir?


279

Tüm enabledhizmetleri nasıl listeleyebilirim systemctl?

Çalıştırma systemctlkomutunun tek başına tüm hizmetleri listelediğini biliyorum , ancak yalnızca bu hizmetleri almak istiyorum enabled.


Etkin derken ne demek istiyorsun? Çalışan hizmetler mi?
Gen,

7
@Gen bir servisi etkinleştirmek, başlamasından oldukça farklıdır. Bakın man systemctl.
Jos,

Büyüleyici. En düşük puan alan cevap, en iyi cevap olmadığı halde, en “doğru” cevaptır. Bu mükemmel soru (ve cevapları), Unix & Co. @FelipeAlvarez'in uzun zamandır devam eden (ve mükemmel) tasarım ilkelerini nasıl ihlal ettiği konusundaki ilginç bir örnektir. / systemctl tam olarak istediğini yapabilir (en deneyimli kullanıcılar sadece bu şişmeyi düşüneceklerdir). Linus Torvalds'ın neden sistematik olarak bu kadar kritik derecede kritik olduğunu daha net görmeye başladım.
BISI

Yanıtlar:


411

systemctl list-unit-files | grep enabledTüm etkin olanları listeler .

Hangilerinin çalışmakta olduğunu istiyorsanız , ihtiyacınız var systemctl | grep running.

Aradığınızı kullanın. Etkin, çalıştığı anlamına gelmez. Ve koşmak, etkin olduğu anlamına gelmez. Onlar iki farklı şey.

Etkin, sistemin hizmeti bir sonraki açılışta çalıştıracağı anlamına gelir. Bu nedenle, bir servisi etkinleştirirseniz, yine de el ile başlatmanız veya yeniden başlatmanız gerekir;

Çalışıyor aslında şu anda çalışıyor, ancak etkin değilse, yeniden başlattığınızda yeniden başlatılmayacak.


5
Bu hayati bilgileri göstermek için harici bir araç (grep) kullanmak zorunda kalmaktan rahatsız. Ama bize yolu gösterdiğin için teşekkür ederim :)
Felipe Alvarez

34
@FelipeAlvarez Doğru. Fakat Linux böyle çalışır. Birbiriyle iyi çalışan birçok küçük ikili dosya. systemctl isteneni yapar, hizmetleri listeler. Grc zaten var olduğu ve herhangi bir programın çıktısıyla bunu iyi yapabildiği için systemctl'de yerleşik bir filtreleme komutu yoktur. Her zaman böyle oldu :)
Dorian

3
Katılıyorum ve bu yüzden olmalı. Ancak, systemd zaten çok fazla şey yapmaya çalıştığını ve neden etkin servisleri listelemediğini merak ediyorum.
Felipe Alvarez,

5
systemctl | grep runningbana bir şey listeleme! Bir şey çalışıyor olsa bile, sadece onun durumu için listelenir:enabled, disabled, masked, static
Cirelli94

27
Daha basit:systemctl list-unit-files --state=running
Will

93

man systemctl devletler:

--state=

Bağımsız değişken birimi virgülle ayrılmış bir liste olması gerekir LOAD, SUBya da ACTIVEdurumları. Üniteleri listelerken, sadece belirtilen durumdakileri gösterin. --state=failedYalnızca başarısız birimleri göstermek için kullanın .

Açıklama:

LOAD: Ünite tanımının uygun şekilde yüklenip yüklenmediğini yansıtır.
ACTIVE: Yüksek seviye birim aktivasyon durumu, yani genelleştirilmesi SUB.
SUB: Düşük seviye ünite aktivasyon durumu, değerler ünite tipine bağlıdır.

Bunu sadece enabledbirimleri olan göstermek için de kullanabilirsiniz :

systemctl list-unit-files --state=enabled

Bir birim ise enabled, sistemin başlangıçta başlatılacağı anlamına gelir. Bir şeyi ayarlamak enabledgerçekte yapılmadığı startiçin bunu el ile yapmanız ya da ayarladıktan sonra sistemi yeniden başlatmanız gerekecektir enabled.


5
Etkinleştirmek ve aynı anda başlamak için:systemctl enable --now ...
Aurélien Ooms

1
--state=enabledsistemd sürüm 215 (Raspbian 8 Jessie'de) üzerinde hiçbir etkisi yoktur, ancak sistem sürüm 229 (Ubuntu 16.04.03 Xenial'de) üzerinde çalışır.
mpb

@mpb: Fakat yine de, Arch Linux'ta 235 sürümünde mükemmel çalışıyor.

64

Tüm listelemek için systemdolan hizmet state=activevesub=running

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

Çalışmakta olan ya da systemdçıkmakta olan state=activeya da altında olan tüm hizmetleri listelemek için

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

12

Hala başlangıçta / init run altında olan hizmetleri içeren 'etkin' servisleri görmek için:

systemctl list-unit-files --type service --state enabled,generated

Çalışmakta olan tüm servislerin çalışmasını görmek için:

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

Örneğin - Maalesef hizmetlerin isimleri iki listelerinde farklı olabilir sshdvs sshve syslogvs rsyslog.
OrangeDog

Sadece "grep olmayan" doğru cevap. Niçin
starttart'dan

2

Ayrıca tüm aktif ve başarısız servislere genel bakış:

systemctl list-units --type service --state running,failed
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.