Как пользоваться: Генератор systemd service
- Выберите шаблон — Node.js, Python с Gunicorn, Go-бинарник или скрипт по расписанию, — чтобы заполнить разумные значения по умолчанию.
- Укажите команду, рабочий каталог и пользователя, от имени которого она будет запущена (создайте его командой
useradd --system; никогда не запускайте приложения от root). - Добавьте переменные окружения или
EnvironmentFile, выберите политику перезапуска и оставьте включенной песочницу. - Скопируйте unit-файл в
/etc/systemd/system/и выполните показанные команды установки.
Три секции unit-файла
| Секция | Ключевые параметры |
|---|---|
[Unit] | Description, а также After=/Wants=network-online.target, чтобы приложение запускалось после поднятия сети |
[Service] | ExecStart (абсолютный путь), User, WorkingDirectory, Environment, Restart и RestartSec |
[Install] | WantedBy=multi-user.target — к какой цели подключит сервис systemctl enable, чтобы он запускался при загрузке |
Песочница
Параметры усиления защиты делают сервис заметно безопаснее без изменения кода: NoNewPrivileges, ProtectSystem=strict (файловая система доступна только для чтения, кроме ReadWritePaths), ProtectHome, PrivateTmp, PrivateDevices и защита ядра. Проверить результат можно командой systemd-analyze security my-app. Если приложению нужно писать в другой каталог, добавьте этот путь в ReadWritePaths.
Таймеры вместо cron
.timer-юнит запускает сервис типа oneshot по календарному расписанию. В отличие от cron, его запуски записываются в журнал, он может наверстать пропущенные запуски (Persistent=true), а следующий запуск можно увидеть командой systemctl list-timers. Чтобы перевести строку cron в значение OnCalendar, воспользуйтесь генератором cron-выражений.
Также ищут как: генератор systemd unit file, node js systemd service, python systemd service, генератор systemd timer, linux service файл.
Инструменты, которые хорошо сочетаются с Генератор systemd service
- Генератор конфига Nginx — Выберите, что должен делать Nginx: отдавать статический сайт или SPA, проксировать запросы к приложению на Node/Python или обрабатывать PHP.
- Генератор Dockerfile — Выберите стек и получите готовый к продакшену Dockerfile: многоэтапная сборка, кэшируемый слой зависимостей, пользователь без root-прав, проверка состояния (health check) и подходящий .dockerignore с построчным объяснением.
- Генератор Apache VirtualHost — Получите готовый конфиг виртуального хоста Apache для вашего домена: статический сайт, WordPress, PHP-FPM или обратный прокси к приложению на Node или Python.
- Генератор Caddyfile — Caddy получает HTTPS-сертификаты автоматически, вам нужно только описать сайт.