使用 screen 记录作为 SystemD 服务运行的进程的输出

使用 screen 记录作为 SystemD 服务运行的进程的输出

我正在使用以下服务脚本将 Minecraft 服务器作为 systemd 服务运行

Description=MC Server: %i
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/%i

User=minecraft
Group=minecraft

Restart=always
RestartSec=30

StandardOutput=append:ServiceConsoleOut.log
StandardError=append:ServiceConsoleErr.log

ExecStart=/usr/bin/screen -DmS mc-%i java -Xms48G -Xmx48G -jar paper.jar --nogui

ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS..."\015'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"\015'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"\015'

[Install]
WantedBy=multi-user.target

我想将控制台的输出捕获为日志,并尝试使用 StandardOutput 和 StandardError 进行重定向,但显然这不起作用。我确信这是可能的,但我不记得需要如何完成。有人可以向我提供如何做到这一点的必要见解吗?

相关内容