【问题标题】:Create screen for restart script? bash为重新启动脚本创建屏幕?重击
【发布时间】:2015-07-17 04:31:29
【问题描述】:

我正在尝试在 Ubuntu 服务器上使用此脚本。

#!/bin/sh
while (true)
do
    screen -S myserver java -server -Xms4G -Xmx4G -jar craftbukkit.jar
    echo "Server restarting in 5 seconds. Ctr+C to kill the server!"
    echo "Rebooting in:"
    for i in 5 4 3 2 1
    do
        echo "$i..."
        sleep 1
    done
    echo "Rebooting Server!"
done

但是,一旦我运行脚本并从屏幕上分离,它就会开始重新启动过程。怎样才能在屏幕关闭后才开始重启?

【问题讨论】:

    标签: bash ubuntu gnu-screen


    【解决方案1】:

    测试screen session是否还在运行:

    #!/bin/sh
    while :
    do
        screen -S myserver java -server -Xms4G -Xmx4G -jar craftbukkit.jar
        if screen -ls myserver | grep -q "No Sockets found"
        then 
            echo "Server restarting in 5 seconds. Ctr+C to kill the server!"
            echo "Rebooting in:"
            for i in 5 4 3 2 1
            do
                echo "$i..."
                sleep 1
            done
            echo "Rebooting Server!"
        else 
            echo "Not rebooting yet"
        fi
    done
    

    但是由于这是一个无限循环,如果您分离屏幕并且它没有重新启动,它将启动另一个屏幕会话。我不知道你为什么把它放在一个循环中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-08
      • 1970-01-01
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多