Welcome 微信登录

首页 / 操作系统 / Linux / Linux shell手动执行与放在crontab中自动执行结果不同

#!/bin/sh
WORKDIR=/home/guoq/myprogram/Debug
PROGRAM=program
LOGFILE=/var/log/monitor.logeval "PID=`ps -ef|grep ${PROGRAM} | grep -v grep | awk "{printf $2}"`"
eval echo "PID is ${PID}" >> ${LOGFILE}
if [ x"${PID}" = x"" ]; then
eval echo "`date`: program is down, so restart it!" >> ${LOGFILE}
eval cd ${WORKDIR}
eval nohup ${PROGRAM} &
else
eval echo "`date`: ${PID} still running" >> ${LOGFILE}
fi上述脚本,手动执行与放在crontab中自动执行结果不同;最后发现,如果自动执行,那么其他程序的路径中也会出现program,
awk "{printf $2}"的时候,会同时得到几行的内容串接在一起,始终不为空;将
PROGRAM=program
改为
PROGRAM=./program
问题搞定!Linux程序消除相对文件路径的影响Linux 内存计算相关资讯      Linux Shell 
  • Linux基础知识:shell基础命令  (今 10:39)
  • Linux系统监控shell脚本  (04月09日)
  • Linux shell脚本编程  (03月01日)
  • Linux shell数组  (07月26日)
  • Linux Shell实现批量关闭局域网中  (03月10日)
  • Linux系统入门教程:如何知道当前  (11/27/2015 08:36:09)
本文评论 查看全部评论 (0)
表情: 姓名: 字数