[Unit] Description=PZ Manager — веб-панель сервера Project Zomboid After=network-online.target Wants=network-online.target [Service] Type=simple User=pzserver Group=pzserver WorkingDirectory=/opt/pzmanager ExecStart=/usr/local/bin/pzmanager serve --config /opt/pzmanager/config.yaml Restart=on-failure RestartSec=5 # Менеджер сам останавливает игровой сервер по SIGTERM: сначала отправляет # команду quit (мир сохраняется), потом добивает процесс. Дадим ему время. KillSignal=SIGTERM KillMode=mixed TimeoutStopSec=300 # Всё своё панель держит в /opt/pzmanager, домашние каталоги ей не нужны. # # NoNewPrivileges здесь намеренно не выставлен: он запрещает процессу и его # потомкам повышать привилегии, а значит ломает sudo — и вместе с ним кнопки # обновления и перезапуска панели. Прикрытием служит sudoers: сервисному # пользователю разрешена ровно одна команда, pzmanager-admin. PrivateTmp=true ProtectSystem=full ProtectHome=true ReadWritePaths=/opt/pzmanager StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target