我有一台Ubuntu服务器,每天在0901运行一次网络抓取cron作业。
cron line:
01 09 * * 1-5 bash /root/FCPIDCheck.sh
该文件运行一个pid检查程序,以查看该进程是否已经从停止实例的前一天开始运行,并且日复一日地同时运行。
PIDFILE=/root/FC.pid
if [ -f $PIDFILE ]
then
PID=$(cat $PIDFILE)
ps -p $PID > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "Process already running"
exit 1
else
## Process not found assume not running
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
else
echo $$ > $PIDFILE
if [ $? -ne 0 ]
then
echo "Could not create PID file"
exit 1
fi
fi
/root/FCScript
rm $PIDFILE
最后,文件FCScript调用以下Rscript实例:
cd /root/Program/
Rscript --no-save --no-restore --verbose doSomething.R >> ./logs/log_$(date "+%Y-%m-%d").Rout 2>> ./errors/err_$(date "+%Y-%m-%d").Rout
无论出于何种原因,某些早晨程序无法正常启动。我进入了syslog,发现没有安装MTA的错误,所以我安装了postfix来输出本地消息。
在服务器没有从cron作业开始的时候,我可以手动重启它,但几乎总能发现它会在30分钟内停止运行,因此存在潜在的问题,但我真的不喜欢&#39知道如何找到导致bash停止的原因。
我尝试从bt中手动运行FCScript文件以及从RStudio运行的代码,看看它是否是对已导致R发生错误的已删除网页的更改,但我发现Rstudio实例在实例运行正常在bash中被终止。
我显然不是Linux方面的专家,所以对我能做得更好的任何帮助和建议都非常感激。