Генератор systemd service — создание unit-файла .service

Запускайте приложение как полноценный сервис Linux, который стартует при загрузке и перезапускается после сбоя. Выберите шаблон (Node.js, Python, Go, скрипт), настройте команду, пользователя и окружение, и получите unit-файл .service с комментариями и опциональной песочницей. Или добавьте .timer, чтобы запускать задачу по расписанию, как cron.

Обновлено
Unit-файл
Команды установки

Ваши данные никогда не покидают ваш компьютер. Вся обработка выполняется на 100% локально в вашем браузере.

Был ли этот инструмент полезен?0.0 Оценок: 0
Генератор конфига NginxServer block для статики, SPA, reverse proxy и PHP-FPM с HTTPS, редиректом www, gzip, кешем, заголовками безопасности и rate limit.Генератор конфига Nginx →

Как пользоваться: Генератор systemd service

  1. Выберите шаблон — Node.js, Python с Gunicorn, Go-бинарник или скрипт по расписанию, — чтобы заполнить разумные значения по умолчанию.
  2. Укажите команду, рабочий каталог и пользователя, от имени которого она будет запущена (создайте его командой useradd --system; никогда не запускайте приложения от root).
  3. Добавьте переменные окружения или EnvironmentFile, выберите политику перезапуска и оставьте включенной песочницу.
  4. Скопируйте 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-сертификаты автоматически, вам нужно только описать сайт.

Часто задаваемые вопросы

Где хранить файл systemd-сервиса?
Сохраните его как /etc/systemd/system/NAME.service, выполните sudo systemctl daemon-reload, затем sudo systemctl enable --now NAME, чтобы запустить сервис сейчас и при каждой загрузке.
Как посмотреть логи сервиса?
Выполните journalctl -u NAME -f, чтобы смотреть журнал в реальном времени, или journalctl -u NAME --since today. Всё, что приложение выводит в stdout или stderr, попадает туда.
В чем разница между Restart=always и on-failure?
on-failure перезапускает сервис только после сбоя или ненулевого кода выхода; always перезапускает и после штатного завершения. Для большинства приложений используйте on-failure, а для воркеров, которые не должны останавливаться, — always.
Может ли systemd заменить cron?
Да: отметьте «Запускать по расписанию», и вы получите unit-файл .timer. Таймеры логируют каждый запуск, могут наверстать пропущенное после простоя и проще для проверки, чем записи в crontab.
Можно ли установить Генератор systemd service как веб-приложение и пользоваться им офлайн?
Да. Генератор systemd service — это веб-приложение (PWA), которое можно установить из браузера, без скачивания из магазина приложений. В Chrome или Edge (Windows, macOS, Linux, ChromeOS) или на Android нажмите вверху этой страницы «Установить приложение»; на iPhone и iPad используйте «Поделиться → На экран «Домой»», а в Safari 17+ на Mac — «Файл → Добавить в Dock». После этого приложение откроется в отдельном окне со своим значком, и так как оно полностью работает в браузере, оно продолжит работать офлайн. Firefox на компьютере не умеет устанавливать веб-приложения. Как работает установка.

Похожие инструменты

localГенератор конфига NginxВыберите, что должен делать Nginx: отдавать статический сайт или SPA, проксировать запросы к приложению на…localГенератор cron-выраженийСоставьте расписание crontab без запоминания синтаксиса или вставьте существующее выражение, чтобы увидеть…localГенератор DockerfileВыберите стек и получите готовый к продакшену Dockerfile: многоэтапная сборка, кэшируемый слой…localГенератор Apache VirtualHostПолучите готовый конфиг виртуального хоста Apache для вашего домена: статический сайт, WordPress, PHP-FPM…localГенератор CaddyfileCaddy получает HTTPS-сертификаты автоматически, вам нужно только описать сайт. Выберите обратный прокси (с…localКалькулятор chmodОтметьте чтение, запись и выполнение для владельца, группы и остальных или введите 755, rwxr-xr-x либо…