systemd

26 commands

26 shown

Включить и запустить сервис Включить автозапуск и запустить немедленно одной командой systemctl enable --now myapp.service #systemd Упавшие юниты Список всех юнитов в состоянии failed systemctl list-units --state=failed #systemd#debug Перечитать unit-файл после изменения Перечитать определения юнитов и перезапустить сервис systemctl daemon-reload && systemctl restart myapp.service #systemd Переопределить unit через drop-in Создать drop-in файл с частичными переопределениями systemctl edit myapp.service #systemd Содержимое unit-файла Вывести полный unit-файл включая drop-in файлы systemctl cat myapp.service #systemd#debug Анализ времени загрузки Топ 20 юнитов по времени инициализации systemd-analyze blame | head -20 #systemd#performance#monitoring Граф зависимостей загрузки Граф зависимостей загрузки в формате SVG systemd-analyze dot --require | dot -Tsvg > boot.svg && open boot.svg #systemd#debug Создать простой unit-файл Минимальный шаблон systemd service unit cat > /etc/systemd/system/myapp.service <<EOF [Unit] Description=My App After=network.target [Service] ExecStart=/usr/bin/myapp Restart=always RestartSec=5 User=appuser [Install] WantedBy=multi-user.target EOF #systemd Разовый запуск от другого пользователя Запустить временный one-shot юнит от конкретного пользователя systemd-run --uid=1000 --gid=1000 --wait /usr/bin/myapp --task #systemd Создать systemd таймер Замена cron с Persistent=true для пропущенных запусков cat > /etc/systemd/system/backup.timer <<EOF [Unit] Description=Daily backup [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target EOF #systemd Лимит памяти для сервиса Применить cgroup лимиты без редактирования unit-файла systemctl set-property myapp.service MemoryMax=512M CPUQuota=50% #systemd#performance Использование ресурсов сервисом Текущие память, CPU и потоки из cgroup systemctl status myapp.service | grep -E 'Memory:|CPU:|Tasks:' #systemd#monitoring Список socket юнитов Все socket-активируемые юниты и их состояние systemctl list-units --type=socket --all #systemd#network Замаскировать сервис Полностью запретить запуск сервиса любыми средствами systemctl mask snapd.service #systemd#security Переменные среды сервиса Переменные среды переданные в сервис systemctl show myapp.service -p Environment #systemd#debug Критическая цепочка загрузки Показывает последовательную цепочку зависимостей, реально задерживающую загрузку; честнее, чем blame systemd-analyze critical-chain <unit> #systemd#performance#troubleshooting Диаграмма загрузки SVG Генерирует полную параллельную диаграмму загрузки в SVG, чтобы визуально найти последовательные задержки systemd-analyze plot > boot.svg #systemd#performance#observability Drop-in переопределение Правка юнита через drop-in без изменения файла поставщика; --full форкает весь юнит целиком systemctl edit <unit> # writes /etc/systemd/system/<unit>.d/override.conf #systemd#gitops#troubleshooting Перечитать файлы юнитов Перечитывает файлы юнитов после правки; учтите: обязателен после ручных изменений, иначе systemctl предупредит об устаревшем конфиге systemctl daemon-reload #systemd#troubleshooting Маскировать юнит mask связывает юнит с /dev/null, чтобы он не запускался даже как зависимость; жёстче, чем disable systemctl mask <unit> && systemctl unmask <unit> #systemd#security#troubleshooting Дерево зависимостей Обход полного дерева Wants/Requires для отладки тянущихся зависимостей; --reverse покажет, кому нужен юнит systemctl list-dependencies <unit> --all #systemd#debug#troubleshooting Память юнита в реальном времени Читает живые метрики cgroup прямо из systemd без ps; MemoryCurrent — учтённый RSS процесса systemctl show -p MainPID,MemoryCurrent,TasksCurrent <unit> #systemd#monitoring#performance Сбросить состояние failed Сбрасывает счётчики сбоев, чтобы юниты перезапустились после StartLimitBurst, затем показывает оставшиеся failed systemctl reset-failed && systemctl list-units --state=failed #systemd#troubleshooting#debug Временный одноразовый таймер Создаёт одноразовую пару таймер+сервис без написания файлов юнитов; удобно для разовых задач по расписанию systemd-run --on-calendar='*-*-* 03:00:00' --unit=backup /usr/local/bin/backup.sh #systemd#ci#troubleshooting Лимит ресурсов на лету Применяет лимиты cgroup на лету без перезапуска; --runtime делает их временными (исчезают после перезагрузки) systemctl set-property --runtime <unit> MemoryMax=512M CPUQuota=50% #systemd#performance#troubleshooting Очередь активных задач Показывает выполняющиеся задачи start/stop для диагностики зависшей загрузки или застрявшего юнита systemctl list-jobs #systemd#debug#troubleshooting
no commands match