crontab这个坑,执行单个命令执行成功,但是写到crontab怎么也不行
Posted 李先生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了crontab这个坑,执行单个命令执行成功,但是写到crontab怎么也不行相关的知识,希望对你有一定的参考价值。
昨天开始,一直在弄通过定时任务控制熄屏,在终端下的单个命令可以执行成功,写到脚本里,单个执行脚本能成功,但是写到crontab定时任务,怎么也不熄屏,但他确实执行了,看日志,是一直报错的;百度了很多很多,基本上都是说环境变量的原因,然后试了又试,一直不行,下午在群里问了问,一位大哥给我一步一步分析,后来明白了:
crontab 执行任务是在系统里面执行,执行的时候是没有终端的;
我的想法是既然没有终端我就弄个终端给你执行这条熄屏命令:
*/1 * * * * export DISPLAY=:0.0 ;gnome-terminal -x /bin/bash -c "xset dpms force off && exit 2>>/tmp/log"
export DISPLAY=:0.0 将环境变量设置为这个,才能打开终端
gnome-terminal:打开一个终端
gnome-terminal --maximize:打开一个终端后最大化
gnome-terminal --full-screen:打开一个终端后全屏
-c <string> 运行后面的字符串代表的命令或者脚本。分号表示依次执行多个命令
把自己遇到的问题写出来,当你看到的时候,也许会带来一点提示灵感啥的,嘿嘿
遇到问题一定要冷静,一步一步的排错,不能太着急,日志是一个很重要很重要的东西,原理也是一个很重要很重要的东西!!!
以上是关于crontab这个坑,执行单个命令执行成功,但是写到crontab怎么也不行的主要内容,如果未能解决你的问题,请参考以下文章
linux的计划任务可以设定成每30秒钟执行命令一次么?就是 crontab -e 这个命令之后应该怎么写?