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怎么也不行的主要内容,如果未能解决你的问题,请参考以下文章

crontab 命令行执行成功,定时任务报错

linux的计划任务可以设定成每30秒钟执行命令一次么?就是 crontab -e 这个命令之后应该怎么写?

定时任务crontab在书写时的四大坑

为啥 ssh 从 crontab 失败但从命令行执行时成功?

shell脚本 手动执行成功,crontab执行缺少数据

crontab内环境变量问题(crontab定时任务执行脚本异常)