Я продолжаю находить при поиске с помощью Google, что они расположены в/usr/lib/systemd/system/и/etc/systemd/system/. Однако в моей человечности, первое даже не существует, и другой имеет только несколько сервисов
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
Где другие?
Когда я выполняю systemctl единицы списка, я вижу столько сервисов, но я не знаю, где определить местоположение их. Например, где мой plexmediaserver.service? Я должен знать, потому что это - то, где я хочу поместить свои другие единицы.
Обеспеченные пакетом сервисные файлы все обычно располагаются в /lib/systemd/system
. Например, поиск .service
в индексе .
пакета От 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/*
последние - для сеансов пользователя. Ubuntu 16.04 IIRC все еще использует выскочку для сеансов пользователя, таким образом, те файлы только применимы от после 16.04.
Для определенного сервиса, для наблюдения то, что systemd читает, выполнение systemctl status <service>
или 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
Существуют хорошие инструменты для знания о том, каждый раз, когда необходимо определить местоположение чего-то.
первое locate
, который используется для определения местоположения файлов по имени. Это использует предварительно созданный индекс, таким образом, это чрезвычайно быстро. Однако это иногда пропускает новые файлы, которые не были индексированы или могут также пропустить файлы со строгими полномочиями. В этом случае быстрое locate
команда нашло бы все sytemd файлы на Ubuntu:
locate systemd
, Если Вы хотите сфокусироваться на том, что файл Plex, можно использовать канал для фильтрации результатов:
locate systemd | grep plex
другой инструмент для знания о find
, который делает живой поиск конкретного каталога для нахождения файлов. Это имеет партия из опций. Проверьте man find
на детали. Для поиска plexmediaserver.service
где угодно в системе Вы использовали бы:
find / -name plexmediaserver.service
Наконец, в этом случае, Вы, вероятно, знаете, которому принадлежит пакет , который файл Вы ищете. Если Вы не уверены в точном имени пакета, можно использовать этот синтаксис для нахождения всего пакета, которые содержат 'plex' на их имя:
dpkg -l '*plex*'
, Если Вы находите, что пакет интересуетесь именованным 'plexmediaserver', затем можно использовать этот синтаксис для списка всех файлов в том пакете:
dpkg -L plexmediaserver
Снова, можно использовать канал для фильтрации результатов в просто сервисный файл, который Вы ищете:
dpkg -L plexmediaserver | grep plexmediaserver.service
Теперь Вы сможете найти файлы для многих общих падежей.
Использование команды systemd-analysis
:
Все папки, которые могут содержать пользовательские сервисы:
systemd-analyze --user unit-paths
Я предпочитаю systemd-analysis --global unit-paths
Все папки, которые могут содержать системные службы:
systemd-analyze --system unit-paths
См .: справочная страница