Назад до інструментів

Генератор файлів служб 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 та активацією за кілька хвилин.

Переглянути хостинг