无法附加屏幕会话
Can't attach screen session
我是 运行 Ubuntu 服务器 14.04.2 LTS。我试图使用 init.d 配置将 java 应用程序(我的世界)添加到启动。这是一个片段:
MINECRAFT_DIR="/srv/minecraft-server"
START_COMMAND="java -Xincgc -Xmx8G -XX:MaxPermSize=128M -jar Spigot.jar"
SCREEN_NAME="minecraft-server"
attach() {
screen -Rx $SCREEN_NAME
}
start() {
echo "Starting minecraft server..."
if cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND; then
echo "Minecraft server started. Use 'sudo service minecraft attach'."
fi
}
当我发出 sudo service minecraft start
时一切正常,我可以在 htop 中看到屏幕会话 并且 sudo screen -list
打印出屏幕会话。我也可以用 sudo service minecraft attach
或 sudo screen -x
.
附加它
但是在 sudo update-rc.d minecraft defaults
并重新启动服务器后,虽然我可以在 htop 中看到屏幕会话,但它没有在 sudo screen -list
中列出,我无法再附加它!
我尝试以 root 或我的用户身份使用 crontabs 但没有成功。
Here 是我的完整 init.d 脚本。
原来你必须用
明确指定shell
bash -c "cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND"
或者,如果您 运行 作为用户,您可以
USERNAME='minecraft'
INVOCATION="cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND"
su - "$USERNAME" -s /bin/bash -c "$INVOCATION"
感谢 this 提出想法。
我是 运行 Ubuntu 服务器 14.04.2 LTS。我试图使用 init.d 配置将 java 应用程序(我的世界)添加到启动。这是一个片段:
MINECRAFT_DIR="/srv/minecraft-server"
START_COMMAND="java -Xincgc -Xmx8G -XX:MaxPermSize=128M -jar Spigot.jar"
SCREEN_NAME="minecraft-server"
attach() {
screen -Rx $SCREEN_NAME
}
start() {
echo "Starting minecraft server..."
if cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND; then
echo "Minecraft server started. Use 'sudo service minecraft attach'."
fi
}
当我发出 sudo service minecraft start
时一切正常,我可以在 htop 中看到屏幕会话 并且 sudo screen -list
打印出屏幕会话。我也可以用 sudo service minecraft attach
或 sudo screen -x
.
但是在 sudo update-rc.d minecraft defaults
并重新启动服务器后,虽然我可以在 htop 中看到屏幕会话,但它没有在 sudo screen -list
中列出,我无法再附加它!
我尝试以 root 或我的用户身份使用 crontabs 但没有成功。
Here 是我的完整 init.d 脚本。
原来你必须用
明确指定shellbash -c "cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND"
或者,如果您 运行 作为用户,您可以
USERNAME='minecraft'
INVOCATION="cd $MINECRAFT_DIR && screen -dmS $SCREEN_NAME $START_COMMAND"
su - "$USERNAME" -s /bin/bash -c "$INVOCATION"
感谢 this 提出想法。