【问题标题】:Can't attach screen session无法附加屏幕会话
【发布时间】:2015-07-21 07:45:56
【问题描述】:

我正在运行 Ubuntu Server 14.04.2 LTS。我试图使用 init.d 配置将 java 应用程序(minecraft)添加到启动中。这是一个sn-p:

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 attachsudo screen -x

但是sudo update-rc.d minecraft defaults 重启服务器后,虽然我可以在 htop 中看到屏幕会话,但它不在sudo screen -list 中列出,我无法再附加它!

我尝试以 root 或我的用户身份使用 crontabs,但没有成功。

Here 是我完整的 init.d 脚本。

【问题讨论】:

    标签: ubuntu startup gnu-screen


    【解决方案1】:

    结果表明你必须明确指定 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 提供建议。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多