it-swarm.com.de

Wo befinden sich die Systemeinheiten / -dienste in Ubuntu?

Beim googeln stelle ich immer wieder fest, dass sie sich unter/usr/lib/systemd/system/und/etc/systemd/system/befinden. In meinem Ubuntu gibt es jedoch das erste nicht einmal, und das andere hat nur wenige Dienste

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

Wo sind die anderen?

Wenn ich systemctl list-units starte, sehe ich so viele Dienste, aber ich weiß nicht, wo ich sie finden soll. Wo ist zum Beispiel mein plexmediaserver.service? Ich muss es wissen, weil ich dort meine anderen Einheiten aufstellen möchte.

17
Guerlando OCs

Die vom Paket bereitgestellten Servicedateien befinden sich normalerweise in _/lib/systemd/system_. Zum Beispiel Suche nach _.service_ im Paketindex .

Von 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/*
_

Die letzteren sind für Benutzersitzungen. IIRC Ubuntu 16.04 verwendet weiterhin Upstart für Benutzersitzungen, sodass diese Dateien erst ab 16.04 gültig sind.

Führen Sie für einen bestimmten Dienst _systemctl status <service>_ oder _systemctl show <service>_ aus, um zu sehen, welches Systemd gerade liest:

_$ 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
_
27
muru

Es gibt gute Werkzeuge, über die Sie Bescheid wissen müssen, wenn Sie etwas suchen müssen.

Der erste ist locate, mit dem Dateien nach Namen gesucht werden. Es verwendet einen vorgefertigten Index und ist daher extrem schnell. Es fehlen jedoch manchmal neue Dateien, die nicht indiziert wurden, oder möglicherweise auch Dateien mit eingeschränkten Berechtigungen. In diesem Fall würde ein schneller Befehl locate alle systemd-Dateien auf Ubuntu finden:

locate systemd

Wenn Sie sich auf diese Plex-Datei konzentrieren möchten, können Sie die Ergebnisse mit einer Pipe filtern:

locate systemd | grep plex

Das andere Tool, das Sie kennen sollten, ist find, das eine Live-Suche in einem bestimmten Verzeichnis durchführt, um Dateien zu finden. Es hat eine Menge von Optionen. Überprüfen Sie man find für Details. Um auf Ihrem System nach plexmediaserver.service zu suchen, verwenden Sie:

find / -name plexmediaserver.service

Schließlich wissen Sie in diesem Fall wahrscheinlich, zu welchem ​​Paket die gesuchte Datei gehört. Wenn Sie den genauen Paketnamen nicht kennen, können Sie mit dieser Syntax alle Pakete suchen, deren Name 'plex' enthält:

dpkg -l '*plex*'

Wenn Sie feststellen, dass das gewünschte Paket den Namen "plexmediaserver" trägt, können Sie mit dieser Syntax alle Dateien in diesem Paket auflisten:

dpkg -L plexmediaserver

Sie können auch hier eine Pipe verwenden, um die Ergebnisse nach der gesuchten Servicedatei zu filtern:

dpkg -L plexmediaserver | grep plexmediaserver.service

Jetzt können Sie Dateien für viele gängige Fälle finden.

10
Mark Stosberg