Я пытаюсь автоматизировать свой сервер Minecraft, потому что необходимость вручную переключать сессии tmux через некоторое время становится очень старой. Вот файл службы systemd, который я написал, чтобы помочь мне с этим:
[Unit]
Description=Minecraft Server: %i
After=network.target
[Service]
WorkingDirectory=/opt/minecraft/servers/%i
User=minecraft
Group=minecraft
Restart=on-failure
ExecStart=/usr/bin/tmux new -s mc-%i -d '/usr/bin/java -Xms1G -Xmx6G -jar forge-universal.jar nogui' bash
ExecStop=/usr/bin/tmux send -t mc-%i 'say SERVER WILL SHUT DOWN IN 10 SECONDS' ENTER
ExecStop=/bin/sleep 10
ExecStop=/usr/bin/tmux send -t mc-%i 'stop' ENTER
[Install]
WantedBy=multi-user.target
Выполнение строки ExecStart
вручную работает отлично, процесс Java аккуратно помещается в отдельный сеанс tmux, к которому я могу присоединиться на досуге.
Попытка запустить сервер с помощью systemctl start minecraft@creative
безуспешна, с десятками сообщений об ошибках, наподобие этих, заполняющих журнал перед тем, как в итоге произойти сбой:
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Service hold-off time over, scheduling restart.
Oct 11 21:34:45 kingcolour systemd[1]: Stopped Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: Starting Minecraft Server: private...
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Control process exited, code=exited status=1
Oct 11 21:34:45 kingcolour systemd[1]: Failed to start Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Unit entered failed state.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Failed with result 'exit-code'.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Service hold-off time over, scheduling restart.
Oct 11 21:34:45 kingcolour systemd[1]: Stopped Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: Starting Minecraft Server: private...
Oct 11 21:34:45 kingcolour systemd[1]: Started Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Control process exited, code=exited status=1
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Unit entered failed state.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Failed with result 'exit-code'.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Service hold-off time over, scheduling restart.
Oct 11 21:34:45 kingcolour systemd[1]: Stopped Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Start request repeated too quickly.
Oct 11 21:34:45 kingcolour systemd[1]: Failed to start Minecraft Server: private.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Unit entered failed state.
Oct 11 21:34:45 kingcolour systemd[1]: minecraft@private.service: Failed with result 'exit-code'.
Поскольку tmux проглатывает все сообщения об ошибках, которые могли произойти, я понятия не имею, что может пойти не так. Кто-нибудь сталкивался с этим раньше?