Ubuntu'da bulunan systemd birimleri / hizmetleri nerede?


23

Googling yaparken, / usr / lib / systemd / system / ve / etc / systemd / system / adresinde bulunduklarını görmeye devam ediyorum. Ancak, benim ubuntu'mda, birincisi bile yok ve diğerinin sadece birkaç hizmeti var

bluetooth.target.wants                      default.target.wants           hybrid-sleep.target.wants    shutdown.target.wants
dbus-org.bluez.service                      display-manager.service        multi-user.target.wants      sockets.target.wants
dbus-org.freedesktop.Avahi.service          display-manager.service.wants  network-online.target.wants  suspend.target.wants
dbus-org.freedesktop.ModemManager1.service  getty.target.wants             paths.target.wants           sysinit.target.wants
dbus-org.freedesktop.nm-dispatcher.service  graphical.target.wants         plexmediaserver.service      syslog.service
dbus-org.freedesktop.thermald.service       hibernate.target.wants         printer.target.wants         timers.target.wants

Diğerleri nerede?

Systemctl liste birimlerini çalıştırdığımda çok fazla hizmet görüyorum ama onları nerede bulacağımı bilmiyorum. Örneğin, plexmediaserver.service'im nerede? Bilmem gerek çünkü diğer birimleri koymak istiyorum.

Yanıtlar:


33

Paket tarafından sağlanan hizmet dosyalarının tümü genellikle içinde bulunur /lib/systemd/system. Örneğin , paket dizininde arama yapın.service .

Gönderen man systemd.unit:

/etc/systemd/system/*
/run/systemd/system/*
/lib/systemd/system/*
...

$XDG_CONFIG_HOME/systemd/user/*
$HOME/.config/systemd/user/*
/etc/systemd/user/*
$XDG_RUNTIME_DIR/systemd/user/*
/run/systemd/user/*
$XDG_DATA_HOME/systemd/user/*
$HOME/.local/share/systemd/user/*
/usr/lib/systemd/user/*

Sonuncusu kullanıcı oturumları içindir. IIRC Ubuntu 16.04 kullanıcı oturumları için yine de başlatma işlemini kullanır, bu nedenle bu dosyalar yalnızca 16.04'ten sonra uygulanabilir.

Belirli bir hizmet için hangi systemd'nin okuduğunu görmek, çalıştırmak systemctl status <service>veya systemctl show <service>:

$ systemctl show ssh.service | grep Path
FragmentPath=/lib/systemd/system/ssh.service
DropInPaths=/etc/systemd/system/ssh.service.d/override.conf
$ systemctl status ssh.service
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/ssh.service.d
           └─override.conf
   Active: active (running) since Thu 2017-01-26 16:06:53 JST; 21h ago
 Main PID: 948 (sshd)
   CGroup: /system.slice/ssh.service
           └─948 /usr/sbin/sshd -D

1
Teşekkür ederim! Ayrıca, diğerleri nerede? Systemd init sürecinin arayacağı tüm yerleri bilmek istiyorum
Guerlando OCs

1
@GuerlandoOCs güncellemeye bakın.
17:28

11

Bir şeyi ne zaman bulmanız gerektiğini bilmek için iyi araçlar vardır.

Birincisi locate, dosyaları ada göre bulmak için kullanılır. Önceden oluşturulmuş bir dizin kullanır, bu nedenle son derece hızlıdır. Ancak, bazen dizine eklenmemiş yeni dosyaları veya kısıtlayıcı izinlere sahip dosyaları da kaçırabilir. Bu durumda, hızlı bir locatekomut Ubuntu'daki tüm systemd dosyalarını bulur:

locate systemd

Bu Plex dosyasına odaklanmak istiyorsanız, sonuçları filtrelemek için bir dikey çizgi kullanabilirsiniz:

locate systemd | grep plex

Bilmeniz gereken diğer araç find, dosyaları bulmak için belirli bir dizinde canlı arama yapan araçtır . Bu bir var çok seçenek. man findAyrıntıları kontrol edin . Sisteminizde plexmediaserver.serviceherhangi bir yeri aramak için şunları kullanırsınız:

find / -name plexmediaserver.service

Son olarak, bu durumda, muhtemelen aradığınız dosyanın hangi pakete ait olduğunu bilirsiniz . Tam paket adından emin değilseniz, adlarında 'plex' içeren tüm paketi bulmak için bu sözdizimini kullanabilirsiniz:

dpkg -l '*plex*'

İlgilendiğiniz pakete 'plexmediaserver' adı verildiğini görürseniz, bu sözdizimini bu paketteki tüm dosyaları listelemek için kullanabilirsiniz:

dpkg -L plexmediaserver

Yine, sonuçları yalnızca aradığınız hizmet dosyasına filtrelemek için bir kanal kullanabilirsiniz:

dpkg -L plexmediaserver | grep plexmediaserver.service

Artık birçok yaygın durum için dosya bulabileceksiniz.

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.