如何讓 systemctl 追蹤腳本的生成進程?

如何讓 systemctl 追蹤腳本的生成進程?

作為後續我之前的帖子之一,我使用 systemd 在 Ubuntu 18.04 上運行 GMod 伺服器。我的 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 伺服器更有經驗的人認為這是一個更好的選擇),我寧願只擁有systemctljournalctl顯示伺服器二進位檔案的日誌。我嘗試使用Type=forking,但運行systemctl restart gmod會掛起,所以我不確定這是否是正確的選擇。有誰知道如何取得正確的日誌systemctl/更好的方式來運行伺服器?

相關內容