- [⬆ вверх]
- Cписок проверки знаний Linux для детей.md
- DEBTAP КАК ЗАСТАВИТЬ .DEB СЛУЖИТЬ ARCH'У.md
- Gpg генерация ключей.md
- Nmtui - настройка сети.md
- Punycode - как русский домен превратить в ASCII.md
- Systemd и что это такое..md
- Taskwarrior - Примеры с комментариями.md
- Wi-Fi в Linux откуда боль и как её лечить.md
- ZSH - что за shell?.md
- iptables
- megacli - утилита управления LSI MegaRAID контроллерами..md
- ssh вход по ключу для root'a.md
- zfs шпаргалка.md
- zpool шпаргалка.md
- Взять цвет пипеткой.md
- Встроенные переменные Bash (POSIX-compatible).md
- Генерим себе пароли.md
- Группа wheel.md
- Добавление принтера на archLinux.md
- Зашифровать папку.md
- Звук
- Как дверь по паролю на SSH запереть!.md
- Как подключить джостик от PS3 к Linux.md
- Как раскрасить вывод echo?.md
- Как узнать какая материнка стоит?.md
- Качаем с youtub'a.md
- Конвертирование в .iso различных образов..md
- Копирование без кеширования.md
- Куда пишутся "логи неудачных попыток входа в систему"?.md
- Настройка ntp.md
- Настройка сети в ручную на arch'e.md
- Не работает звук. Что делать?.md
- Нет wifi карты на ноуте, что делать?.md
- Обновление ключей в Arch Linux.md
- Основные пакеты при установке arch linux.md
- Очистка кеша pacman и yay.md
- Перевод выделенного текста и показ перевода в графическом диалоговом окне KDE.md
- Переменные окружения (ENV).md
- Работа с .qcow2.md
- Создание собственной сети внутри Docker'a.md
- Специфично для Linux переменные окружения.md
- Список пакетов для установки Arch'a.md
- Ставим i3 на Arch Linux.md
- Удаление защищённых файлов.md
- Установка tinyproxy.md
- Установка видео драйверов.md
- Установка пакетов из исходников в Arch Linux.md
- Чиним не рабочие F1-F12.md
- Что за "коровья СУПЕРСИЛА"?.md
- Что такое Linger в системе systemd.md
- Шпаргалка по всему systemd.md
- список команд для mdadm - утилиты для управления RAID-массивами.md
1. Что за зверь systemd?
systemd - вождь всех демонов в GNU/Linux. Он:
-
поднимает юниты (службы, таймеры, сокеты);
-
решает зависимости;
-
даёт лог через
journalctl
; -
заменяет init, cron, inetd.
Орки любят systemd, потому что он как боевой шаман: один командует всем племенем процессов.
2. Что такое юнит?
Юнит = текстовый файл .service
/ .timer
/ .socket
/ .target
.
Лежат в /usr/lib/systemd/system/
или ~/.config/systemd/user/
.
Пример - сервис:
[Unit]
Description=Боевой демон
[Service]
ExecStart=/usr/bin/orc-daemon
Restart=always
[Install]
WantedBy=default.target
3. Основные секции
-
[Unit]
- описание и зависимости. -
[Service]
- что и как запускать. -
[Install]
- к чему прицепить приenable
. -
Дополнительно:
[Timer]
,[Socket]
,[Path]
,[Target]
.
4. Директивы, что каждый орк обязан знать
[Unit]
Description= # коммент
After=foo.service # после
Wants=bar.target # мягкая связь
[Service]
ExecStart=/cmd args # что запускать
ExecStartPre=/bin/sleep 5 # задержка
Restart=on-failure # рестарт при падении
Environment=VAR=orc
Type=simple # тип демона
[Install]
WantedBy=default.target
5. Targets - тотемы
default.target
→ твой юзерский дефолт.
graphical.target
→ когда графика поднята.
multi-user.target
→ консольный уровень.
graphical-session.target
→ у DE (GNOME/KDE).
Можно делать свои (xsession.target
для i3).
6. systemctl - боевой топор
systemctl status foo.service # статус
systemctl start foo.service # запустить
systemctl stop foo.service # остановить
systemctl restart foo.service # рестарт
systemctl enable foo.service # автозапуск
systemctl disable foo.service # убрать
systemctl -user … # юзерский режим
- journalctl - шаманский барабан
journalctl -u foo.service # логи юнита
journalctl -xe # последние ошибки
journalctl -user -u foo.service # юзер-юнит
8. Таймеры вместо cron
foo.timer
+ foo.service
.
[Unit]
Description=Будильник
[Timer]
OnBootSec=10min
OnUnitActiveSec=1h
[Install]
WantedBy=timers.target
Проверка:
systemctl list-timers
9. Сокеты и ленивый старт
Можно сделать .socket
, который слушает порт, и .service
, который оживает при коннекте. Экономия ресурсов, как орк спящий до боя.
10. Советы юного орка
-
Не бойся
systemctl edit --user foo.service
— override хранится в~/.config/systemd/user
. -
Юнит = просто текстовый файл, редактируй как
.ini
. -
Для отладки:
systemd-analyze verify foo.service
. -
Не делай костылей со
sleep
, если можно подвязать черезAfter=
/Wants=
.
⚡ Итог: systemd = тотемный шаман Linux. Изучи его магию - и ты сможешь приручить любой демон.