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语句块注释掉后就可以被调起,放开之后在整点调用不起来。

为毛啊?求大神解答。
帮瞅瞅。
展开
 我来答
百度网友91c72def2
2013-08-30 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:32.6万
展开全部
crontab里调用的脚本是用cron用户执行的,有可能是cron用户的环境变量里找不到你脚本中的命令,毕竟,在调试脚本的时候用的都是root或者一般用户,权限和环境变量与crontab用户不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
游剑糨糊
2013-08-30 · TA获得超过245个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:152万
展开全部
调用不起来具体是什么情况?是不是执行了exit 0以后退出了脚本所以你觉得没调用?
更多追问追答
追问
不会!因为如果我将 if 判断去掉之后,我的程序就会运行并且生成文件,在测试运行之前,是将有关这个程序的进程都 kill 了的。

加这块判断的目的就是因为程序是每个小时都调用一次,调用的前提是当天早晨总行下发一个文件,如果文件下来了,在下一个整点的时候程序就被调起。但是程序会运行好几个小时,为防止程序重复执行,所以加上这个 if。
追答
看了你的解释,你第一次执行时应该不会grep出2个进程吧?那脚本判断$EXEC_NUM不等于2条件为真,当然就退出了,应该是if [ $EXEC_NUM -eq 2 ]吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式