所以我一直在尝试制作一个自动重启脚本,大部分都可以,但是当它归结为我的if else语句时,我不认为它会在我通过cron job运行脚本时运行
#!/bin/sh
screen -x modded
sleep 2
screen -S modded -X stuff "say restarting in 1 minute"
screen -S modded -X eval "stuff \015"
# [...]
screen -wipe
sleep 2
screen -ls | awk '/\.modded\t/ {print strtonum($1)}' > pid/kill.pid
sleep 1
PIDFile="/home/Minecraft/direwolf20-server1.12/pid/kill.pid"
File=`stat -c %s pid/kill.pid`
if [ $File -lt 1 ];then
rm pid/kill.pid
sleep 2
sh ./start
else
sleep 2
kill -9 $(<"$PIDFile")
sleep 2
rm pid/kill.pid
sleep 2
screen -wipe
sleep 2
sh ./start
fi
当我自己运行脚本时,它可以正常运行
答案 0 :(得分:0)
两种选择: 1)在脚本中,将#!/ bin / sh 更改为#!/ bin / bash ,并确保将其标记为可执行文件。
2)创建cron条目时,请在脚本之前指定shell。 例如
0 */12 * * * /bin/bash /home/foo/script.sh