启动屏幕会话作为服务,如何将屏幕会话输出(返回)传输到服务日志?

启动屏幕会话作为服务,如何将屏幕会话输出(返回)传输到服务日志?

我有一个交互式 shell 应用程序。我希望此应用程序作为服务运行。为了能够在服务运行时访问 shell,我认为最好将该服务作为启动应用程序的屏幕会话来启动。

但这会产生一个问题。服务日志实际上并未显示我在屏幕会话中可以看到的任何输出。

如何将屏幕会话输出传输到服务日志?

[Unit]
Description=CSGO Server
After=network.target

[Service]
Type=forking
WorkingDirectory=/home/birger/csgo-server
ExecStartPre=-/usr/bin/screen -S ${SCREEN_TITLE} -X kill
ExecStart=/usr/bin/screen -dmS ${SCREEN_TITLE} -O -l /usr/bin/bash\
 -c /home/birger/csgo-server/update-and-start
ExecStop=/usr/bin/screen -S ${SCREEN_TITLE} -p 0 -X stuff "exit^M"
Environment=SCREEN_TITLE=csgo
RemainAfterExit=false
Restart=always
RestartSec=5s
SuccessExitStatus=1

[Install]
WantedBy=default.target

发起者

systemctl --user start csgo.service

查看日志

journalctl -u csgo.service

输出(为空白):

-- Logs begin at Sat 2020-02-22 14:17:45 CET, end at Mon 2021-08-16 15:06:35 CEST. --
-- No entries --

但如果我将其附加到屏幕上,我可以看到实际上有很多文本,只是没有显示在服务日志中。

相关内容