Генератор файлів служб Systemd
Введіть виконуваний файл, робочий каталог, політику перезапуску та користувача — отримайте готовий до встановлення юніт .service (і опціональний супутній .timer), з поясненням кожного згенерованого рядка.
Пресети
Почніть з типового навантаження
Завантажує розумні типові значення для полів нижче. Усе залишається редагованим після цього.
[Unit]
Опис і порядок
Секція [Unit] — це метадані та порядок запуску: вона повідомляє systemd, що це за служба й після чого вона має запускатися, але сама нічого не запускає.
Юніти, після яких це має запускатися, через пробіл.
[Service] — процес
Що запускати
Потрібен абсолютний шлях.
За замовчуванням дорівнює User, якщо залишено порожнім.
[Service] — середовище
Змінні середовища
Кожен рядок стає власним рядком Environment=. Для секретів, які ви не хочете тримати прямо у файлі юніта, використовуйте натомість EnvironmentFile.
Необов'язково, абсолютний шлях.
[Install]
Коли автозапускається
Секція [Install] має значення лише для systemctl enable — вона вказує, послідовність завантаження якої цілі повинна підключати цю службу.
[Service] — надійність
Політика перезапуску
Це не перемикач увімк/вимк — оберіть варіант, що відповідає тому, як цей процес має завершуватися з помилкою.
Перезапускається при збої, ненульовому коді виходу чи тайм-ауті — але свідома «systemctl stop» чи чистий exit(0) залишаються без змін. Звичний вибір для довготривалого застосунку чи ігрового сервера: він відновлюється після збоїв, не борючись з адміністратором, який зупинив його навмисно.
Секунди очікування перед перезапуском.
Необов'язково
Обмежує, скільки RAM і CPU може використовувати ця служба. Залиште вимкненим, якщо вам справді не потрібна жорстка стеля.
Перевірка
Типові помилки
Виглядає чисто — проблем не виявлено.
Необов'язковий супутній юніт
Запускає цю службу за розкладом замість (або на додаток до) завантаження — аналог cron-завдання в systemd, прив'язаний до навантажень Type=oneshot. Хочете простий cron? Окремий інструмент «Генератор Cron-завдань» саме для цього — OnCalendar= має інший синтаксис, ніж cron, і не є прямою заміною.
Результат
Згенеровані файли юніта
my-application.service
[Unit] Description=My application After=network.target Wants=network.target [Service] Type=simple ExecStart=/usr/bin/node /opt/wespner-app/server.js WorkingDirectory=/opt/wespner-app User=wespner-app Environment="NODE_ENV=production" Environment="PORT=3000" Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
Команди встановлення
sudo cp my-application.service /etc/systemd/system/my-application.service sudo systemctl daemon-reload sudo systemctl enable --now my-application.service journalctl -u my-application.service -f # follow logs
Керуєте власним ігровим сервером?
Ігрові сервери Wespner із захистом від DDoS, дисками NVMe та активацією за кілька хвилин.