screen を使用して SystemD サービスとして実行されるプロセスの出力を記録します。

screen を使用して SystemD サービスとして実行されるプロセスの出力を記録します。

次のサービススクリプトを使用して、Minecraftサーバーをシステムサービスとして実行しています。

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を使用してリダイレクトしようとしましたが、明らかに機能しませんでした。これが可能だと確信していますが、どうすべきか覚えていません。誰かが私にこれを行う方法について必要な洞察を提供できますか?

ベストアンサー1

おすすめ記事