ubuntu croncab定时任务 shell脚本单独可行 定时任务执行命令不可行

shell脚本功能:

获取使用gpu的进程,通过长度判断有几个进程使用gpu,当有1个进程时,执行命令启动另一个进程

创建定时任务步骤:

编写定时任务:
crontab -e
编写内容(两个小时执行一次):
* */2 * * * /home/kluntech/YOLOV4-darknet-master/reconnectShell.sh

shell脚本:

#!/bin/bash
GPU_RUN_IDS=$(nvidia-smi -q -d PIDS | grep 'Process ID' | awk '{print $4}' | sort | uniq)
#echo 'ids:'${GPU_RUN_IDS}
#echo 'len:'${#GPU_RUN_IDS}
length_IDS=${#GPU_RUN_IDS}
#echo 'len:'${length_IDS}
if [ $length_IDS -gt 8 ]
then echo '>8:'1
else
cd /home/kluntech/YOLOV4-darknet-master/
CUDA_VISIBLE_DEVICES=1 nohup ./darknet detector demo phoneProject/obj.data phoneProject/yolo-obj.cfg yolo-obj_best.weights  rtsp://guest:sg123456@172.19.54.22:554//Streaming/Channels/1 -thresh .90 -dont_show -videoout /sgvedio/zhongkong/
fi

遇到问题:

1.shell脚本单独执行成功,crontab执行不成功

查看crontab日志:

将日志设置为可见
vim /etc/rsyslog.d/50-default.conf
改为(去掉注释#):
cron.*                          /var/log/cron.log

查看日志命令:
less -10 /var/log/cron.log

2.crontab执行成功,但是脚本里面的命令执行失败

原因是由于路径问题,所以本人要执行命令,先进入目录(目录一定要绝对路径,绝对路径)

cd /home/kluntech/YOLOV4-darknet-master/
CUDA_VISIBLE_DEVICES=1 nohup ./darknet detector demo phoneProject/obj.data phoneProject/yolo-obj.cfg yolo-obj_best.weights  rtsp://guest:sg123456@172.19.54.22:554//Streaming/Channels/1 -thresh .90 -dont_show -videoout /sgvedio/zhongkong/

最终成功。 

 

 

 

 

 

 

上一篇:cron计划任务


下一篇:crontab命令执行定时任务、指定conda环境