Де розташовані системні підрозділи / служби в Ubuntu?


23

Я постійно виявляю, гугуючи, що вони розташовані за адресою / usr / lib / systemd / system / та / etc / systemd / system /. Однак у моєму ubuntu перший навіть не існує, а другий має лише кілька сервісів

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? Мені потрібно знати, бо саме там я хочу розмістити свої інші підрозділи.

Відповіді:


33

Зазвичай файли сервісних файлів розміщені в /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/*

Останні призначені для сеансів користувача. IIRC Ubuntu 16.04 все ще використовує оновлення для сеансів користувача, тому ці файли застосовні лише після 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

1
Дякую! Також де інші? Я хочу знати всі місця, де буде шукати
системний

1
@GuerlandoOCs див. Оновлення.
муру

11

Є хороші інструменти, про які можна знати, коли вам потрібно щось знайти.

Перший - це те locate, що використовується для пошуку файлів по імені. Він використовує попередньо вбудований індекс, тому він надзвичайно швидкий. Однак іноді не вистачає нових файлів, які не були індексовані, а також можуть пропускати файли з обмежуючими правами. У цьому випадку швидка locateкоманда знайде всі системні файли на 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

Тепер ви зможете знайти файли для багатьох поширених випадків.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.