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/

最终成功。 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值