crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

sh/bash/dash/ksh/zsh等Shell脚本
回复
galaxypan
帖子: 26
注册时间: 2008-04-01 17:08

crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#1

帖子 galaxypan » 2009-02-12 19:27

按照搜索到的做法:
20 19 * * * export DISPLAY=:0 && /usr/bin/gnucash
到时间了却不能执行,在/var/log/下面也没有cron.log这个文件。
如果只是输出几个字母到文件是没有问题的:
22 19 * * * echo "test" >> /home/ubuntu/test.txt

请问我该如何调查这个问题?
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#2

帖子 aerofox » 2009-02-12 22:55

DISPLAY=:0 /usr/bin/gnucash 就可以了,LZ 自己贴的也应该可以。
你这个 crontab 是当前桌面登录的用户的吗?
头像
c\nc
帖子: 231
注册时间: 2007-12-25 12:51

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#3

帖子 c\nc » 2009-02-12 23:24

用 su -l username -c "/bin/bash -l -c 'DISPLAY=:0 gnucash &'" 估计就没问题了吧?
galaxypan
帖子: 26
注册时间: 2008-04-01 17:08

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#4

帖子 galaxypan » 2009-02-16 12:57

aerofox 写了:DISPLAY=:0 /usr/bin/gnucash 就可以了,LZ 自己贴的也应该可以。
你这个 crontab 是当前桌面登录的用户的吗?
是当前登录用户。测试了好多遍就是不行,也看不到什么log,所以根本不知道哪里出了错!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#5

帖子 eexpress » 2009-02-16 12:59

最多试试 :0.0 罗。
● 鸣学
galaxypan
帖子: 26
注册时间: 2008-04-01 17:08

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#6

帖子 galaxypan » 2009-02-16 12:59

c\nc 写了:用 su -l username -c "/bin/bash -l -c 'DISPLAY=:0 gnucash &'" 估计就没问题了吧?
晚上回去试试看。
你的意思是权限问题么? 我用的普通用户而非管理员。不知道用这个su有没有问题。
galaxypan
帖子: 26
注册时间: 2008-04-01 17:08

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#7

帖子 galaxypan » 2009-02-16 13:00

eexpress 写了:最多试试 :0.0 罗。
谢谢,回去试试看。
yuu1010
帖子: 185
注册时间: 2008-04-11 23:31

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#8

帖子 yuu1010 » 2009-02-16 13:04

是不是= :0中=与:之间要有空格呢?
这绝不是我在开玩笑,而是我以前碰到类似这个的问题是这么解决的。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#9

帖子 eexpress » 2009-02-16 13:42

不要空格
● 鸣学
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#10

帖子 aerofox » 2009-02-16 23:26

galaxypan 写了:
aerofox 写了:DISPLAY=:0 /usr/bin/gnucash 就可以了,LZ 自己贴的也应该可以。
你这个 crontab 是当前桌面登录的用户的吗?
是当前登录用户。测试了好多遍就是不行,也看不到什么log,所以根本不知道哪里出了错!
试试

代码: 全选

DISPLAY=:0 /usr/bin/gnucash >& /tmp/gnucash.log
看看能不能发现点错误。
galaxypan
帖子: 26
注册时间: 2008-04-01 17:08

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#11

帖子 galaxypan » 2009-02-18 20:19

谢谢楼上的各位。
log里面是这样的信息:

代码: 全选

gnc.bin-Message: main: binreloc relocation support was disabled at configure time.

No protocol specified
奇怪的是我直接执行这个命令没有这个信息。
这个信息是程序本身的问题,不影响使用。但在crontab里面为什么就不行了呢?
请教高手,谢谢!
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#12

帖子 eexpress » 2009-02-24 9:02

换一个软件就是啊。试试先。
cron里面不认你帐号的环境配置的(它可不是跑bash的),看是否这gnucash调用了个人环境配置。
● 鸣学
zxkane
帖子: 103
注册时间: 2007-11-02 10:46

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#13

帖子 zxkane » 2009-02-24 16:52

crontab不会继承当前用户的profile,试试先source /home/yourname/.bashrc或者export程序运行所需要的环境变量
lylwkm
帖子: 8
注册时间: 2008-11-26 15:46

Re: crontab 输出信息到文件可以,gui程序却不能执行(export DISPLAY=:0)

#14

帖子 lylwkm » 2010-10-16 16:47

显示输出设置有问题。
一般格式:0 0 * * * export DISPLAY=:0 && yourGUIprogram
但注意:DISPLAY=XX 这个地方可能因人而异。像我这个是1.0 你可以通过echo $DISPLAY
来查看。
原来我也遇到这个问题,一直搞不懂,在baidu上搜的都是说怎么通过cron执行ls 什么的。gui方面的搜到的也是一知半解,没说明清楚,也是瞎猫碰见死耗子。一般都填0.0或者直接0。放到我这死活不行,白费了好多时间。后来在英文版的ubuntu论坛中找到了正解。所以以后还是多看看英文版的,如果实在找不到解决方案。
http://ubuntuforums.org/showthread.php? ... 993&page=2
回复