LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 992|回复: 9

at不能执行可视化程序?(已解决)

[复制链接]
发表于 2006-6-14 01:15:16 | 显示全部楼层 |阅读模式
定时执行console程序没有问题的,
我添加了一个gedit做定时执行测试,好像不能运行啊
莫非at不能定时执行可视化程序?
发表于 2006-6-15 15:57:18 | 显示全部楼层
你可以用 2>$HOME/err.tmp,将结果打出来看看就知道了。at是在console下面执行的,而gedit需要x-win库的支持(具体是那个不知道),所以,就好像你直接在命令行下面打入gedit就出现一堆错误是一个道理。
回复 支持 反对

使用道具 举报

发表于 2006-6-16 12:43:04 | 显示全部楼层
at and cron do not support X.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-18 13:16:23 | 显示全部楼层
谢谢两位,我明白了。
为了我自己的需要我用python写了一个凑合使用,代码我发上来见附件,写的不好见笑了,有用的着的兄弟可以看看。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2006-6-18 23:02:28 | 显示全部楼层
Post by yongjian
at and cron do not support X.

这个应该存疑。
我在at中使用zenity就可以打开gtk对话框。
{{{
zenity --info --display=:0
}}}
回复 支持 反对

使用道具 举报

发表于 2006-6-18 23:57:15 | 显示全部楼层
主要是 DISPLAY 没有设置。。。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-19 08:17:40 | 显示全部楼层
试了一下的确是可以的,以前没有使用过--display选项,这才发现这一个非常有用的功能,不过这又给我引出了一个小疑问了:

我使用普通用户登录(登录一):
[PHP]
aiyi@osr ~ $ echo $DISPLAY
:0.0
[/PHP]
同时还有另外一个同是aiyi用户的窗口登录(登录二):
[PHP]
aiyi@osr ~ $ echo $DISPLAY
:20.0
[/PHP]
我在登录一下使用gedit --display=:20.0可以使gedit显示在登录二下,反之亦然。
不过在我在sudo su -得到的root shell下使用gedit --display=:0.0或者gedit --display=:20.0均不能成功,这是什么原因呢?
[PHP]
osr aiyi # gedit --display=:20.0
Xlib: connection to ":20.0" refused by server
Xlib: No protocol specified

cannot open display: :20.0
Run 'gedit --help' to see a full list of available command line options.
[/PHP]

[PHP]
osr aiyi # gedit --display=:0.0
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified

cannot open display: :0.0
Run 'gedit --help' to see a full list of available command line options.
[/PHP]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-19 08:25:56 | 显示全部楼层
[PHP]
aiyi@osr ~ $ xhost + root
root being added to access control list
[/PHP]
这样就允许root用户在aiyi的窗口登录下运行x程序了。

汗……看来要抓紧时间努力学习了。
回复 支持 反对

使用道具 举报

发表于 2006-6-21 02:53:42 | 显示全部楼层
或者用 xhost +localhost  允许本地的所有用户输出 X。
回复 支持 反对

使用道具 举报

发表于 2006-6-22 02:10:50 | 显示全部楼层
Post by ybyygu
这个应该存疑。
我在at中使用zenity就可以打开gtk对话框。
{{{
zenity --info --display=:0
}}}

Its probably nothing to do with at. AT will strip off all X authorities when switching to at env. (atd under user daemon -- look at manpage). This is just like "su". You can tweak it by assigning DISPLAY and opening up xhost to X server, but it doesn't always true for all X apps.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表