Как заставить systemctl отслеживать порожденный процесс скрипта?

Как заставить systemctl отслеживать порожденный процесс скрипта?

В качестве продолженияодин из моих предыдущих постов, я использую 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 лучший способ запустить сервер?

Связанный контент