
В качестве продолженияодин из моих предыдущих постов, я использую systemd для запуска сервера GMod на Ubuntu 18.04. Мой скрипт systemd выглядит так:
[Unit]
Description=Gmod Server
After=network.target
[Service]
User=rooday # the user I normally run run_gmod.sh with
ExecStart=/datadrive/srcds/run_gmod.sh
Restart=Always
[Install]
WantedBy=multi-user.target
и он нормально запускает мой сервер, но проблема в том, что systemctl status
не journalctl
отображаются фактические логи двоичного файла сервера.
Это происходит потому, что run_gmod.sh
запускает srcds_run
скрипт (частьsrcdsустановка) с параметрами для моего сервера (какой игровой режим, какая карта и т. д.). srcds_run
принимает эти параметры и устанавливает некоторые переменные среды, а затем запускает фактический двоичный файл сервера (а также имеет некоторую логику для перезапуска двоичного файла сервера после сбоя, обновления сервера и т. д.).
srcds_run
имеет много логики, поэтому я не хочу обходить ее и запускать двоичный файл напрямую (если только кто-то более опытный с серверами srcds не сочтет это лучшим вариантом), я бы предпочел просто иметь systemctl
и journalctl
показывать логи двоичного файла сервера. Я пробовал использовать Type=forking
, но тогда запуск systemctl restart gmod
зависал, поэтому я не уверен, что это правильный вариант. Кто-нибудь знает, как получить правильные логи в systemctl
/a лучший способ запустить сервер?