Управление сервисами
Работа с systemd: сервисы, таймеры, юниты
На этой странице
Опубликовано: 01.02.2026 •
Обновлено: 01.02.2026
Systemd — система инициализации и управления сервисами в ROSA Linux.
Основные команды systemctl
Управление сервисами
# Статус
systemctl status sshd
# Запуск
sudo systemctl start sshd
# Остановка
sudo systemctl stop sshd
# Перезапуск
sudo systemctl restart sshd
# Перезагрузка конфигурации (без остановки)
sudo systemctl reload sshd
Автозапуск
# Включить автозапуск
sudo systemctl enable sshd
# Выключить автозапуск
sudo systemctl disable sshd
# Включить и запустить сразу
sudo systemctl enable --now sshd
Просмотр
# Все сервисы
systemctl list-units --type=service
# Только активные
systemctl list-units --type=service --state=running
# Неудачные
systemctl list-units --failed
Типы юнитов
| Тип | Расширение | Назначение |
|---|---|---|
| Service | .service | Демоны и сервисы |
| Timer | .timer | Планировщик задач |
| Mount | .mount | Точки монтирования |
| Socket | .socket | Сокеты для активации |
| Target | .target | Группы юнитов |
| Path | .path | Мониторинг файлов |
Создание своего сервиса
Пример: простой скрипт
- Создайте скрипт:
sudo nano /usr/local/bin/myscript.sh
#!/bin/bash
echo "Service started at $(date)" >> /var/log/myscript.log
# Ваш код здесь
sudo chmod +x /usr/local/bin/myscript.sh
- Создайте юнит:
sudo nano /etc/systemd/system/myscript.service
[Unit]
Description=My Custom Script
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/myscript.sh
[Install]
WantedBy=multi-user.target
- Активируйте:
sudo systemctl daemon-reload
sudo systemctl enable --now myscript
Типы сервисов
Type=simple— основной процесс остаётся запущеннымType=oneshot— выполняется один раз и завершаетсяType=forking— демон форкается (как традиционные демоны)
Таймеры (замена cron)
Пример: ежедневная задача
Создайте сервис /etc/systemd/system/backup.service:
[Unit]
Description=Daily backup
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
Создайте таймер /etc/systemd/system/backup.timer:
[Unit]
Description=Run backup daily
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
Активируйте:
sudo systemctl enable --now backup.timer
Просмотр таймеров
systemctl list-timers
Синтаксис OnCalendar
OnCalendar=daily # Каждый день в 00:00
OnCalendar=weekly # Каждую неделю
OnCalendar=*-*-* 02:00:00 # Каждый день в 2:00
OnCalendar=Mon *-*-* 09:00 # Каждый понедельник в 9:00
Пользовательские сервисы
Для сервисов текущего пользователя:
# Создайте папку
mkdir -p ~/.config/systemd/user/
# Создайте юнит
nano ~/.config/systemd/user/myapp.service
# Управление
systemctl --user daemon-reload
systemctl --user enable --now myapp
systemctl --user status myapp
Диагностика
Логи сервиса
journalctl -u sshd
journalctl -u sshd -f # Следить
journalctl -u sshd --since "1 hour ago"
Анализ загрузки
# Время загрузки
systemd-analyze
# Детальный анализ
systemd-analyze blame
# График зависимостей
systemd-analyze plot > boot.svg
Зависимости
# От чего зависит
systemctl list-dependencies sshd
# Что зависит от
systemctl list-dependencies --reverse sshd
Переопределение конфигурации
Не редактируйте файлы в /usr/lib/systemd/. Используйте drop-in файлы:
sudo systemctl edit sshd
Это создаст /etc/systemd/system/sshd.service.d/override.conf.