ubuntu定时任务无法关机

梦到一夜暴富 发布于 2017/12/08 09:56
阅读 69
收藏 0
#!/usr/bin/env bash

pid=$(pidof docker)
date=`date +%d-%H%M%S`


if [ -z $pid ];then
   echo $date shutdown start
   shutdown -P
   echo $date shutdown end
else
   echo $date $pid not end
fi                

定时任务

*/1 * * * * /home/user/workspace/work/crontab/shutdown.sh>>/home/user/workspace/work/crontab/down_1.txt

昨天下载东西很慢, 就写了个监控脚本监控任务, 如果pid为空, 表示任务结果,就关机;

结果第二天发现没关机, 文本输出:

08-094701 shutdown end
08-094801 shutdown start
08-094801 shutdown end
08-094901 shutdown start
08-094901 shutdown end
08-095001 shutdown start
08-095001 shutdown end

任务执行到了, 但是shutdown命令没起效果

直接执行命令, 是有效果的.

哪位大神帮忙看下,哪里写错了吗?

 

以下是问题补充:

@梦到一夜暴富:将标准输出和错误都打到日志里, 出现 08-140901 shutdown start /home/user/workspace/work/crontab/shutdown.sh: line 9: shutdown: command not found 08-140901 shutdown end (2017/12/08 14:10)
加载中
1
梦到一夜暴富
梦到一夜暴富

引用来自“long_ai_xin”的评论

解决了. 三个问题: 一个是环境问题, 一个是权限问题, 还有一个日志输入问题

1: 首先日志输出问题, 打出来的日志>>只是打出标准输出, 错误不输出, 所以看不到问题;改为:">>1.txt 2>&1"

2: 这时候看到问题: shutdown 找不到命令, 在前面加上"PATH=/sbin:/usr/sbin", shutdown 命令实在/sbin目录下的

3: 权限问题, shutdown需要管理员用户执行, 我本身就是管理员用户, 直接输入就行. 但是crontab好像就不行, 说没权限. 就改为"sudo crontab -e", 这样就有权限执行了. 然后接解决了

0
红薯
红薯
手工执行一下脚本看看嘛
梦到一夜暴富
梦到一夜暴富
怀疑是#!这里的执行环境问题, 但是搜不到怎么设置.
梦到一夜暴富
梦到一夜暴富
回复@红薯 : 手工执行了, 可以关机的.
0
梦到一夜暴富
梦到一夜暴富

解决了. 三个问题: 一个是环境问题, 一个是权限问题, 还有一个日志输入问题

返回顶部
顶部