Linux cron job不想运行我的脚本

时间:2018-01-05 18:49:32

标签: bash cron

所以我一直在尝试制作一个自动重启脚本,大部分都可以,但是当它归结为我的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

当我自己运行脚本时,它可以正常运行

1 个答案:

答案 0 :(得分:0)

两种选择: 1)在脚本中,将#!/ bin / sh 更改为#!/ bin / bash ,并确保将其标记为可执行文件。

2)创建cron条目时,请在脚本之前指定shell。 例如

0 */12 * * * /bin/bash /home/foo/script.sh