【发布时间】:2019-04-13 10:58:46
【问题描述】:
几天后,我在我的 Ubuntu 18.04 LTS 家庭服务器上成功运行了新的 Minecraft 基岩版 专用服务器。因为它应该 24/7 可用并在启动后自动启动,所以我为分离的 tmux 会话创建了一个 systemd 服务:
tmux.minecraftserver.service
[Unit]
Description=tmux minecraft_server detached
[Service]
Type=forking
WorkingDirectory=/home/mine/minecraftserver
ExecStart=/usr/bin/tmux new -s minecraftserver -d "LD_LIBRARY_PATH=. /home/mine/minecraftser$
User=mine
[Install]
WantedBy=multi-user.target
一切都按预期进行,但有一件小事一直困扰着我:
当我按下 Ctrl+C 时,如何防止 tmux 终止它的整个会话?
我只想终止 Minecraft 服务器进程本身,而不是整个 tmux 会话。在手动创建的 tmux 会话中从命令行启动服务器时,这确实工作(会话保持活动状态)但在 systemd 启动会话时不起作用。
【问题讨论】:
-
为什么要在 tmux 中运行它?我想不出任何有意义的理由。如果您真正的问题是“如何通过 systemd 启动 Minecraft 服务器?”,您应该问这个问题。上面你的问题可能有答案,可能有一定的学术价值,但其实这只是个坏主意。
标签: linux systemd tmux sigterm