Linux shell手动执行与放在crontab中自动执行结果不同

#!/bin/shWORKDIR=/home/guoq/myprogram/DebugPROGRAM=programLOGFILE=/var/log/monitor.log

eval “PID=`ps -ef|grep ${PROGRAM} | grep -v grep | awk ‘{printf $2}’`”eval echo “PID is ${PID}” >> ${LOGFILE}if [ x”${PID}” = x”” ]; theneval echo “`date`: program is down, so restart it!” >> ${LOGFILE}eval cd ${WORKDIR}eval nohup ${PROGRAM} &elseeval echo “`date`: ${PID} still running” >> ${LOGFILE}fi

上述脚本,,手动执行与放在crontab中自动执行结果不同;

最后发现,如果自动执行,那么其他程序的路径中也会出现program,awk ‘{printf $2}’的时候,会同时得到几行的内容串接在一起,始终不为空;

将PROGRAM=program改为PROGRAM=./program问题搞定!

『 不可能 』只存在於蠢人的字典里

Linux shell手动执行与放在crontab中自动执行结果不同

相关文章:

你感兴趣的文章:

标签云: