Найти более-менее полноценное описание возможностей SystemD… — Остальные 90% — TG.ME

Найти более-менее полноценное описание возможностей SystemD, оказывается, не так-то просто. С той же проблемой столкнулся и Donald A. Tevault, автор книги с длинным, но говорящим названием Linux Service Management Made Easy with systemd, где этот недостаток наконец устраняется.

К издательству Packt я отношусь с настороженностью, однако эта книга с лихвой оправдала возложенные на неё ожидания. SystemD - сложная многокомпонентная система, включающая несколько консольных утилит и разных типов файлов для управления конфигурацией, она тесно интегрирована в современные дистрибутивы. SystemD обладает неплохой документацией, по которой, однако, не так-то просто ориентироваться, а самостоятельно вычленить из неё все составные части и общую архитектуру - и вовсе непосильная задача. Книга закрывает все эти пробелы.

Объём заметок на этот раз зашкаливает, поэтому для сохранения здесь пришлось выбрать лишь самые полезные и прикладные - если вам приходится работать с SystemD, настоятельно советую познакомиться с книгой целиком и самостоятельно. Уверен, потраченное на её изучение время окупится сполна.

1. Найти описание конкретных директив unit-файлов бывает сложно. Для этого проект поддерживает единый индекс директив со ссылками на страницы man, где можно найти их детальное описание: man systemd.directives.

2. Секция [Install] unit-файлов влияет только на поведение сервиса при вызове команды systemctl enable: она получила своё название в честь того, что описывает, как создавать символические ссылки на этот файл. Отсутствие этой секции делаем сервис статическим - он может быть активирован лишь другими unit-файлами.

3. systemctl kill отправляет сигнал всем процессам, порождённым сервисом - это значительно удобнее и правильнее, чем находить все связанные процессы и отправлять сигнал каждому из них самостоятельно.

4. Новые и модифицированные unit-файлы стоит класть в директорию /etc/systemd/system/, а не /lib/systemd/system: первые имеют приоритет. Этим же пользуется команда systemctl mask, создающая в /etc/systemd/system ссылку на /dev/null с именем сервиса.

5. Команда systemd-analyze позволяет отлаживать многие вещи. Среди прочего, команда systemd-analyze security покажет, какие именно настройки безопасности стоит поправить для выбранного сервиса.

6. Страница man systemd.special содержит описание многих "системных" unit-файлов.

7. Команда systemctl isolate позволяет загрузить выбранный target - своего рода гибкий аналог SysV runlevel.

8. SystemD генерирует unit-файлы для старта стандартных init-скриптов, обеспечивая обратную совместимость.

9. Нажатие ctrl+alt+del 7 раз в течение 2 секунд перезагружает компьютер. Это работает только в текстовом режиме (графическая оболочка перехватывает эту комбинацию клавиш) и может быть отключено маскированием ctrl-alt-del.target.

10. Команда systemctl poweroff --force --force (ключ --force намеренно указан дважды) позволяет выключить компьютер без обращения к SystemD. Это может быть полезно, если демон по каким-то причинам дал сбой.

11. Для просмотра конфигурации NUMA есть команда numactl.

12. journald сохраняет данные перманентно только при существовании директории /var/log/journal. В противном случае логи сохраняются в директорию /run/log/journal и удаляются при перезагрузке.
👍13🔥7❤2
February 24, 2025 787 4 24