为重启脚本创建屏幕? bash
Create screen for restart script? bash
我正在尝试在 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
然而,一旦我 运行 脚本并从屏幕上分离,它就会开始重新启动过程。怎么才能只在屏幕关闭后才重启?
测试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
但是由于这是一个无限循环,如果您分离屏幕并且它没有重新启动,它将启动另一个屏幕会话。我不确定你为什么把它放在一个循环中。
我正在尝试在 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
然而,一旦我 运行 脚本并从屏幕上分离,它就会开始重新启动过程。怎么才能只在屏幕关闭后才重启?
测试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
但是由于这是一个无限循环,如果您分离屏幕并且它没有重新启动,它将启动另一个屏幕会话。我不确定你为什么把它放在一个循环中。