shell脚本中添加的进程控制有问题(ps -ef|grep plxc_unload_shell....... )
我shell脚本中进程控制的语句:EXEC_NUM=0EXEC_NUM=`ps-ef|grepplxc_unload_shell|grep-vvi|egrep-vgrep...
我shell脚本中进程控制的语句:
EXEC_NUM=0
EXEC_NUM=`ps -ef|grep plxc_unload_shell | grep -v vi|egrep -v grep| wc -l`
if [ $EXEC_NUM -ne 2 ]
then echo "$EXEC_NUM"
exit 0
fi
crontab中填加的调度:00 * * * * (~!@#$%^&*=--~!#@$!@)
上面的程序将IF语句块注释掉后就可以被调起,放开之后在整点调用不起来。
为毛啊?求大神解答。
帮瞅瞅。 展开
EXEC_NUM=0
EXEC_NUM=`ps -ef|grep plxc_unload_shell | grep -v vi|egrep -v grep| wc -l`
if [ $EXEC_NUM -ne 2 ]
then echo "$EXEC_NUM"
exit 0
fi
crontab中填加的调度:00 * * * * (~!@#$%^&*=--~!#@$!@)
上面的程序将IF语句块注释掉后就可以被调起,放开之后在整点调用不起来。
为毛啊?求大神解答。
帮瞅瞅。 展开
展开全部
crontab里调用的脚本是用cron用户执行的,有可能是cron用户的环境变量里找不到你脚本中的命令,毕竟,在调试脚本的时候用的都是root或者一般用户,权限和环境变量与crontab用户不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
调用不起来具体是什么情况?是不是执行了exit 0以后退出了脚本所以你觉得没调用?
更多追问追答
追问
不会!因为如果我将 if 判断去掉之后,我的程序就会运行并且生成文件,在测试运行之前,是将有关这个程序的进程都 kill 了的。
加这块判断的目的就是因为程序是每个小时都调用一次,调用的前提是当天早晨总行下发一个文件,如果文件下来了,在下一个整点的时候程序就被调起。但是程序会运行好几个小时,为防止程序重复执行,所以加上这个 if。
追答
看了你的解释,你第一次执行时应该不会grep出2个进程吧?那脚本判断$EXEC_NUM不等于2条件为真,当然就退出了,应该是if [ $EXEC_NUM -eq 2 ]吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询