Systemd Unit для скомпилированного Go / Rust бэкенда (минимальные права)

Обновлено: Август 2026 Стек: Go 1.22+, Rust, Systemd, Linux Проверено: Production-Ready

Шаблон systemd service для скомпилированных бинарных файлов на Go (Golang) и Rust: запуск от непривилегированного пользователя, изоляция NoNewPrivileges и лимиты.

Интерактивный генератор под ваши параметры
Параметры подставляются в код в реальном времени
/etc/systemd/system/go-app.service
# /etc/systemd/system/go-app.service
[Unit]
Description=Go/Rust High-Performance Backend
After=network.target

[Service]
Type=simple
User=appuser
Group=appuser
WorkingDirectory=/opt/app
ExecStart=/opt/app/server
Restart=always
RestartSec=2

# Изоляция безопасности (Security Sandboxing)
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
PrivateTmp=true
LimitNOFILE=100000

[Install]
WantedBy=multi-user.target

Разбор ключевых директив конфигурации

Техническое обоснование директив и их прямое влияние на процессор (CPU), оперативную память (RAM) и дисковый ввод-вывод (NVMe I/O).

Директива / Блок Рекомендуемое значение Зачем нужно и системное влияние (CPU / RAM / I-O)
NoNewPrivileges=true true Запрещает процессу повышать свои привилегии через suid-биты.
ProtectSystem=strict strict Монтирует системные директории /usr, /boot, /etc в режиме Read-Only для сервиса.
Restart=always always Обеспечивает автоматический перезапуск демона или скрипта при критическом сбое или нехватке памяти.
LimitNOFILE=65535 65535 Снимает стандартные ограничения ОС на количество одновременно открытых сетевых сокетов и дескрипторов.

Рекомендуемые системные требования VDS под этот стек

Расчет минимальной и оптимальной конфигурации виртуального сервера для стабильной работы без сбоев.

Оптимальный сайзинг: 1-2 vCPU, 1-2 GB RAM, Высокопроизводительный NVMe
Timeweb Cloud
2 CPU / 4 GB NVMe
Рекомендуемые ресурсы
1-2 vCPU / 1-2 GB RAM / 20 GB NVMe
🔷 Selectel
2 vCPU / 4 GB RAM
Рекомендуемые ресурсы
1-2 vCPU / 1-2 GB RAM / 20 GB NVMe
🟠 Beget
Turbo 4 GB
Рекомендуемые ресурсы
1-2 vCPU / 1-2 GB RAM / 20 GB NVMe

Онлайн-утилиты SysKit для проверки этого сервера

Протестируйте корректность применения конфигурации прямо сейчас в один клик.

Частые ошибки при настройке и их решение (FAQ)

Типовые проблемы вебмастеров и сисадминов при внедрении данной конфигурации.

Как дать доступ к портам 80/443 без root?
Выполните: `setcap 'cap_net_bind_service=+ep' /opt/app/server`.
Как посмотреть логи запущенной службы в реальном времени?
Выполните команду `journalctl -u <имя_сервиса>.service -f -n 100`.
Что делать после редактирования .service файла?
Всегда выполняйте `systemctl daemon-reload` перед перезапуском службы `systemctl restart <имя_сервиса>`.

Рекомендуемые смежные конфигурации

Дополнительные рецепты и калькуляторы для полной оптимизации данного серверного стека.