Где хранятся сервисы linux

Примеры управления службами в Linux с помощью systemctl

Все основные дистрибутивы Linux, такие как Ubuntu, Fedora и т.д., сегодня используют систему systemd init для управления и контроля различных сервисов во время работы системы. Для управления сервисами(демонами) systemd правильнее использовать утилиту systemctl.

Концепция управления сервисами

Systemd – это система init и менеджер сервисов современных Linux-систем. Система init – это первый процесс, который запускается при включении системы и продолжает работать до ее выключения.

Основная цель systemd как системы init – инициализация различных компонентов системы сразу после загрузки ядра Linux. Кроме того, когда система запущена, она также управляет различными службами и демонами, такими как демон ssh, сетевой менеджер и т.д.

Systemd работает на основе файлов блоков. Существуют различные типы юнит-файлов в зависимости от их назначения и ресурсов. Например, службы имеют файлы с расширениями .service , а файлы устройств имеют расширения .device . Для управления файлами блоков используется команда systemctl.

Важные файлы единиц и их описание

Название Расширение Описание
Service unit .service Системная служба
Target unit .target Группа systemd.
Automount unit .automount Точка автоматического монтирования файловой системы.
Device unit .device Файл устройства, распознаваемый ядром.
Mount unit .mount Точка монтирования файловой системы.
Path unit .path Файл или каталог в файловой системе.
Scope unit .scope Созданный извне процесс.
Slice unit .slice Группа иерархически организованных единиц, управляющих системными процессами.
Snapshot unit .snapshot Сохраненное состояние менеджера systemd.
Socket unit .socket Сокет межпроцессного взаимодействия.
Swap unit .swap Устройство подкачки или файл подкачки.
Timer unit .timer Таймер systemd.

.

Где хранятся файлы блоков?

В идеальном случае в системе Linux файлы блоков хранятся в двух местах. Файлы, созданные во время выполнения и загрузки, хранятся в /run/systemd/system/ . Файлы блоков, которые вы создаете вручную (например, командой systemctl enable ), хранятся в /etc/systemd/system/ .

Путь к /etc/systemd/system/ имеет приоритет над файлами блоков времени выполнения, находящимися в /run/systemd/system/ .

Есть еще один путь, где systemd хранит системную копию файлов служебных блоков – /lib/systemd/system .

Читайте также:  Linux top filter by process name

Примеры

Управление службами Systemd с помощью systemctl

Сначала рассмотрим, как можно получить список служб, проверить их состояние и т.д. Это необходимо, если вы хотите понять состояние вашей системы в целях исследования.

Чтобы получить список всех активных модулей systemd, вы можете использовать следующую команду.

Эта команда дает большой вывод с нижеприведенными заголовками. Прокрутите с помощью клавиш со стрелками (вверх, вниз, влево и вправо), чтобы просмотреть весь вывод.

  • UNIT – Имя подразделения systemd
  • Load – Отражает, разобрал ли systemd конфигурационный файл устройства и загружен ли он в память
  • ACTIVE – Состояние устройства (высокоуровневый статус).
  • SUB – Состояние устройства (низкоуровневый статус)
  • DESCRIPTION – Описание устройства.

Например, значение ACTIVE может быть активным, а уровень SUB может быть различным, например, запущен, прослушивается, мертв и активен.

systemctl list-units --all --state=inactive

Список служб

Чтобы перечислить все устройства типа service, используйте следующую команду.

systemctl list-units --type=service

Вы можете комбинировать дополнительные параметры. Например, если вы хотите узнать запущенные службы, используйте следующую команду.

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

Другие комбинации значений state , которые вы можете использовать:

  • active
  • inactive
  • running
  • dead
  • exited
  • plugged
  • tentative
  • listening
  • waiting

Дополнительно, вы можете перечислить все файлы единиц с помощью следующих команд.

Управление файлами устройств – это отдельная тема.

Показать статус службы

Чтобы узнать статус службы, используйте below command. For this guide, Я использовал службу NetworkManager , которая управляет сетевым управлением системы. Вы можете заменить NetworkManager на собственное имя службы. Все следующие команды требуют привилегии sudo. Если вы не знаете имя службы, выполните приведенные выше команды для отображения всех служб, а затем отфильтруйте их с помощью команды grep .

systemctl status NetworkManager.service

Обратите внимание, что вы можете опустить .service в конце имени службы. Systemd достаточно умна, чтобы понять команду!

В приведенном выше примере видно, что вся информация представлена в команде. В ней также есть значение CGroup для идентификации групп пользователей, что необходимо в серверной среде.

Еще несколько примеров команд:

systemctl is-active NetworkManager.service
systemctl is-enabled NetworkManager.service
systemctl is-failed NetworkManager.service

Запуск службы

Запустить службу systemd очень просто. Выполните приведенную ниже команду, указав start и имя службы. Команда запустит службу.

sudo systemctl start NetworkManager.service

Остановка службы

Используя параметр stop, вы можете остановить службу. Например:

sudo systemctl stop NetworkManager.service

Будьте осторожны при остановке службы. Убедитесь, что вы знаете, что делаете.

Читайте также:  Vmware workstation настройка сети мост linux

Перезапуск и перезагрузка службы

Systemd предоставляет параметры для настройки службы таким образом, чтобы она могла перезапускаться или перезагружаться без перезапуска. Параметр restart перезапускает службы, а reload перечитывает конфигурационные файлы

sudo systemctl restart NetworkManager.service
sudo systemctl reload NetworkManager.service

Включение и отключение службы

Если вы создали новую службу или установили приложения, работающие через службы, запуск их с помощью команды start не включит их снова при следующей загрузке. Поэтому, если вы хотите, чтобы systemd запускала службу при загрузке системы, вам нужно использовать команду enable. То же самое верно и для отключения, когда вы хотите отключить службу во время загрузки.

sudo systemctl enable NetworkManager.service

Команда enable создает симлинк из /etc/systemd/system в целевые места.

Чтобы отключить службу, используйте следующую команду.

sudo systemctl disable NetworkManager.service

Службы systemd и связанные с ними команды также имеют множество дополнительных опций. Systemd является надежным и важным компонентом современных систем Linux. Надеюсь, это руководство поможет вам при необходимости устранить неполадки на вашем рабочем столе или серверах в Linux. Существует множество дополнительных возможностей, которые предоставляет systemd – таких как целевые файлы, изменение файлов блоков обслуживания и др. – о которых я расскажу в следующих статьях. Все статьи помечены тегом systemd для удобства просмотра.

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Источник

Где в системах с systemd лежат файлы конфигурации сети и прочих сервисов?

В дистрибутиве который у меня стоял раньше, сеть настраивалась в файле /etc/network/interfaces, всё понятно и красиво, как во всех гайдах в интернете. Но вот сейчас я поставил минт, и смотрю что в этом файле кроме локальной петли ничего нету. Я сразу подумал, как же тогда интерфейс при запуске сам поднялся то, если там не прописано чтобы он поднимался, там вообще ничего нет. Потом ещё заметил ненормальные названия интерфейсов и пошел гуглить. Из нагугленного понял, что виновник всей этой вакханалии и хаоса некий systemd, который кроме своей задачи запуска системы позволяет себе ещё что-то делать. Ну полез я в папку /etc/systemd/network, а там пусто. Ну и где мне теперь искать куда настройки сети прописаны? Гугл выдет только стандартный путь как в нормальных дистрибутивах.

mint на базе убунты а там netplan.io запилили вроде

Читайте также:  Команда linux подключенные устройства

cast intelfx

И как уже им пользоваться? Зачем они вообще всё это делают? Всё же прекрасно работало.

Ну и что это? Это же управление нетворк менеджером из терминала. Я и так в нетворк менеджере могу всё прописать. Мне надо знать где сами конфиги лежат в минте этом, и зачем оно так работает.

как во всех гайдах в интернете
Потом ещё заметил ненормальные названия интерфейсов
некий systemd

Ну и где мне теперь искать куда настройки сети прописаны?

Читай в документации к своему дистрибутиву. В линуксе есть несколько способов настройки сети — interfaces, network manager, networkd etc. Настраиваются они все по разному.

0 Имеем подсказку nmcli c s

1 Читаем man nmcli , в секции SEE ALSO находим nm-settings(5)

2 Внимательно читаем nm-settings(5)

3 Обращаем внимание в секции FILES на

/etc/NetworkManager/system-connections or distro plugin-specific location

Так зачем мне нетворк менеджер? Я и так могу в нетворк менеджере натыкать. Мне нужен сам файл где эти все настройки прописаны.

Ну так в минте этом только и в графической оболочке через нетворк менеджер и настраивается. Понаделали мусора какого-то, что теперь ничего не работает, ну за-то стильно, модно, молодёжно.

Имена интерфейсов можно назначать через правила udev привязав конкретное имя к конкретному MAC.
при этом само имя может быть любым.

torvn77 ★★★★★ ( 17.08.19 17:18:54 MSK )
Последнее исправление: torvn77 17.08.19 17:19:38 MSK (всего исправлений: 1)

Покажи вывод ls -l /etc/NetworkManager/system-connections/

А можно сделать чтобы всё по человечески было как раньше?

Ну так в минте этом только и в графической оболочке через нетворк менеджер и настраивается

Графические оболочки есть не только у NM. Но, если в минте действительно по умолчанию используется NM (что может быть не так, так как в первом же коммите сказали про убунтовский netplan), то и смотри в его файлы настройки, в чём проблема.

$ nmcli c s NAME UUID TYPE DEVICE Проводное соединение 1 2c02c64d-be77-36c5-af64-03aeec35aa65 ethernet ens5f5 Автоматически настроить TOTOLINK_N301RT f8091326-4f64-44c7-b513-94dcfbaf5576 wifi -- 
ls -l /etc/NetworkManager/system-connections/ итого 8 -rw------- 1 root root 402 авг 11 11:16 'Автоматически настроить TOTOLINK_N301RT' -rw------- 1 root root 369 авг 11 15:23 'Проводное соединение 1'
# cat /etc/NetworkManager/system-connections/Проводное\ соединение\ 1 [connection] id=Проводное соединение 1 uuid=2c02c64d-be77-36c5-af64-03aeec35aa65 type=ethernet autoconnect-priority=-999 permissions= timestamp=1565526199 [ethernet] cloned-mac-address=F4:6D:04:89:02:25 mac-address=F4:6D:04:89:02:25 mac-address-blacklist= [ipv4] dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto 

Ну и что это такое? Файл с настройками интерфейса не так должен выглядеть.

Источник

Оцените статью
Adblock
detector