crontab的调用问题
我写了一个脚本,想要通过crontab定时调用,在该脚本存放的当前文件夹下可以执行,但是通过crontab中执行时,进程无法调度起来,而且一直显示的是该进程已起~~
脚本核心部分内容:
ps -ef |grep Jcrontab | grep -v grep | wc -l | read pro_count
if [ $pro_count -lt 1 ]
then
nohup java org.jcrontab.Jcrontab > ../logs/loger.log &
echo "Jcrontab startup ,logs in ../logs dir"
else
echo "there is already ${pro_count}" process with key \"Jcrontab\" exists
fi
当手动 ps -ef |grep Jcrontab | grep -v grep | wc -l ,输出结果为:0
但是通过crontab执行,他输出的结果却是:
echo "there is already ${pro_count}" process with key \"Jcrontab\" exists,表示脚本是存在的,很奇怪,不知道为什么,请高手指点一下~
[解决办法]
你执行以下这句话ps -ef |grep Jcrontab | grep -v grep | wc -l | read pro_count
然后 echo $pro_count一下看看结果是什么? 看了你就会知道
我试了$pro_count -lt 1根本就不会成立 当然会执行else后的语句了
你是想把ps -ef |grep Jcrontab | grep -v grep | wc -l的结果写到赋给pro_count吗
那这样写吧
pro_count=`ps -ef |grep Jcrontab | grep -v grep | wc -l`
[解决办法]
不知道怎么回事了
反正我执行你的代码
ps -ef |grep Jcrontab | grep -v grep | wc -l | read pro_count
这样的代码之后 echo $pro_count 显示的都是空行(非数字)
[解决办法]
ps -ef |grep Jcrontab | grep -v grep | wc -l | read pro_count
把上面一句改为:
pro_count=`ps -ef |grep Jcrontab | grep -v grep | wc -l`