cron作业无法找到wmctrl
我添加了一个cron作业来执行一个依赖于wmctrl的python脚本。这项工作将无法正确执行,并且我已经将此追溯到cron作业似乎无法使用/查找wmctrl的事实。cron作业无法找到wmctrl
我有一个定期任务添加到我的标签如下:
* * * * * /home/tim/wmctrl -h > /home/tim/log.txt
但结果log.txt文件是空的。这个命令在命令行中正常工作。
我的cron ENV如下:
HOME=/home/tim
LOGNAME=tim
PATH=/usr/bin:/bin
SHELL=/bin/sh
PWD=/home/tim
和wmctrl
在/usr/bin/
发现我已经尝试过其他普通的Python scrips和应用,这一切似乎是工作的罚款。
任何帮助或建议将不胜感激。
你可以试试这个:
* * * * * export DISPLAY=:0 && /home/tim/wmctrl -h > /home/tim/log.txt
...并希望'DISPLAY =:0'始终是正确的,这是一个虚幻的希望,但如果偶尔的小故障是可以忍受的,例如在你的个人工作站上,可能工作得很好。 – tripleee 2014-01-10 06:59:35
这里可能会有一些解释。 Cron作业是'cron'守护进程的直接子节点,无法知道是否有X会话,如果有,哪一个是你的。例如,如果您未登录,或者如果您有多个X会话,则这不会达到您想要的效果。 – tripleee 2014-01-10 07:01:29
'出口'是多余的;只要说'DISPLAY =:0/home/tim/wmctrl -h>/home/tim/log.txt'。你真的打算每分钟覆盖一次这个文件吗? – tripleee 2014-01-10 07:02:57
我怀疑这是不是'cron'找不到'wmctrl',而是'wmctrl'不必你'DISPLAY'访问和其他变量可以使其与其他需要的流程进行交流,以实现您要求的目标。 'cron'作业在一个相当有限的用户环境中运行。 – twalberg 2013-04-23 14:31:40
尝试在'/ home/tim/wmctrl'之前添加脚本的解释器:类似'/ bin/sh/home/tim/wmctrl' – fedorqui 2013-04-23 15:22:24