【发布时间】:2014-12-10 23:47:01
【问题描述】:
所以我似乎无法解决我在使用 Crontab 时遇到的这个问题。我有一个我想每 15 分钟运行一次的 shell 脚本。我可以手动执行脚本,但 Crontab 不会成功启动它。很奇怪,我将它设置为在某个时间执行,我可以检查进程是否正在运行,但它从未真正执行过。这是我在 Crontab 中的设置。
0, 15, 30, 45 * * * root /home/rpitc/Desktop/Script/Refresh
Shell 脚本如下所示。
#!/bin/bash
service=wfica
if (( $(ps -ef | grep -v grep | grep $service | wc -l) > 0 ))
then
echo "$service is running!!!"
else
/home/rpitc/Desktop/Script/Iceweasel.sh & /home/rpitc/Desktop/Script/Login.sh
fi
我在这里读到它可能是造成问题的路径,所以我所做的是将所有脚本复制到 /bin 路径适当地更改了脚本,但它仍然无法执行。请帮忙,这太荒谬了!
【问题讨论】:
-
可能是权限问题。
-
不能真正解决您的问题,但不应该反过来
grep -v grep | grep $service -
为什么逗号后面有空格?
-
对不起乔纳森,这是我写这篇文章时的一个错字。我的 Crontab 设置不反映空格。对于吉德...不确定我是否遵循您的说法...我已经完成了以下操作。 chmod 777 到路径。那不应该授予适当的权限吗?
-
Jidder 的评论是
grep -v grep通常用于忽略用于查找进程的grep X。但这只有(真正)在您运行grep X之前 运行grep -v grep时才有效,因为您正在尝试过滤第一个grep 的输出。