Systemctl'den etkinleştirilen tüm hizmetler nasıl listelenir?

Hepsini nasıl listeleyebilirim enabled hizmetlerimiz systemctl?

Koşmayı biliyorum. systemctl komutun kendisi tüm hizmetleri listeler, ancak yalnızca enabled biri.

systemctl list-unit-files | grep enabled hepsini listeleyecek etkin biri.

Şu anda hangilerinin olmasını istiyorsanız koşma, ihtiyacın var systemctl | grep running.

Aradığını kullan. Etkin, çalıştığı anlamına gelmez. Ve çalıştırmak, etkin olduğu anlamına gelmez. Bunlar iki farklı şey.

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

Çalıştırmak, şu anda gerçekten çalışıyor demektir, ancak etkin değilse, yeniden başlattığınızda yeniden başlatılmaz.

man systemctl devletler:

--state=

Bağımsız değişken virgülle ayrılmış bir birim listesi olmalıdır LOAD, SUB, veya ACTIVE devletler. Birimleri listelerken, yalnızca belirtilen durumlardakileri gösterin. Kullanmak --state=failed sadece başarısız birimleri göstermek için.

Açıklama:

LOAD: Birim tanımının doğru yüklenip yüklenmediğini yansıtır.
ACTIVE: Üst düzey birim aktivasyon durumu, yani genelleme SUB.
SUB: Düşük seviyeli ünite aktivasyon durumu, değerler ünite tipine bağlıdır.

Bunu yalnızca göstermek için de kullanabilirsiniz enabled birimleri ile:

systemctl list-unit-files --state=enabled

Bir birim ise enabled bu, sistemin başlangıçta başlatacağı anlamına gelir. Her ne kadar bir şey ayarlıyor olsa da enabled aslında öyle değil start bunu manuel olarak yapmanız veya ayarladıktan sonra sistemi yeniden başlatmanız gerekir enabled.

Hepsini listelemek için systemd içinde bulunan hizmetler state=active ve sub=running

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

Hepsini listelemek için systemd içinde olan serice state=active ve denizaltı ya koşuyor ya da çıkıyor

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

Hala başlatma / başlatma aşamasında olanlar da dahil olmak üzere 'etkin' hizmetleri görmek için:

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

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

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

Ayrıca tüm etkin ve başarısız hizmetlere genel bakış:

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

Tüm hizmetleri yönetebileceğiniz Stacer adlı iyi bir GUI uygulaması var.

enter image description here

Github bağlantısını kontrol et Stacer Github
Ayrıca kontrol edin İnternet daha fazla bilgi için

Mevcut cevaplara ek olarak, yalnızca hizmetlerin adlarını almak için aşağıdakileri kullanıyorum:

systemctl list-units --type=service --state=active,running | awk '/.*\.service/ {print $1}'

Tablo biçiminde değil, yalnızca bu hizmetleri başka bir programa aktarmayı kolaylaştırır

@Gen bir hizmeti etkinleştirmek, hizmeti başlatmaktan oldukça farklıdır. `Man systemctl’ bölümüne bakın.

Büyüleyici. En düşük puan alan cevap, açıkça en iyi cevap olmasa da, en “doğru” cevaptır. Bu mükemmel soru (ve cevapları), systemd’nin Unix & Co’nun uzun süredir devam eden (ve parlak) tasarım ilkelerini nasıl ihlal ettiğinin ilginç bir örneğidir. @FelipeAlvarez, en çok kabul gören cevabın systemd’nin unix tasarım felsefesini takip ettiğini varsaydığından şikayet ediyor, ancak systemd / systemctl tam olarak ne istediğini yapabilir (çoğu deneyimli kullanıcı sadece bu şişkinliği göz önünde bulunduracaktır). Linus Torvalds’ın systemd’yi neden bu kadar şiddetle eleştirdiğini daha net görmeye başladım.

etkin derken neyi kastediyorsun? Çalışan hizmetleri mi kastediyorsun?