当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 14 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : crontab启动图形程序的问题
帖子发表于 : 2008-05-24 10:56 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
因为不知道该贴到哪, 就放到这来了
-------------------------------
在我的系统上, 用crontab可以正常的启动非图形界面的命令, 比如
________________________________________
11 * * * * /usr/bin/mplayer /home/name/abc.mp3
----------------------------------------
每个小时的11分, 就会从音响里传出abc.mp3的声音。

但是, 如果是和图形界面相关的命令, 都运行不了。
________________________________________
11 * * * * /usr/bin/xmms /home/name/abc.mp3
----------------------------------------
没有任何反应。 即使加上DISPLAY=:0 &&, 也无济于事
________________________________________
11 * * * * export DISPLAY=:0 && /usr/bin/xmms /home/name/abc.mp3
----------------------------------------

在论坛里搜索到的帖子, 用最后一个方法都可以启动程序, 可是为什么我这里就不行啦?????

那位牛人帮我看看, 先谢了


页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2008-05-24 20:44 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
crontab没有被注释的第一行

代码:
DISPLAY=:0.0


页首
 用户资料  
 
3 楼 
 文章标题 :
帖子发表于 : 2008-05-25 5:07 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
谢谢LS,

但是我还是没搞出来。 我分别试了下面的几种方法, 都不能启动图形界面

代码:
DISPLAY=:0.0
11 * * * * export DISPLAY ;/usr/bin/xmms
12 * * * * export DISPLAY && /usr/bin/xmms
13 * * * * (export DISPLAY ; /usr/bin/xmms)
14 * * * * (export DISPLAY && /usr/bin/xmms)
15 * * * * export DISPLAY  /usr/bin/xmms
16 * * * * /usr/bin/xmms
17 * * * * (export DISPLAY ; /usr/bin/xmms)
18 * * * * DISPLAY=:0.0;export DISPLAY; /usr/bin/xmms
19 * * * * (DISPLAY=:0.0;export DISPLAY; /usr/bin/xmms)


代码:
DISPLAY=:0.0
11 * * * * export DISPLAY=:0 &&/usr/bin/xmms
12 * * * * export DISPLAY=:0.0 && /usr/bin/xmms
13 * * * * (export DISPLAY=:0 && /usr/bin/xmms)
14 * * * * (export DISPLAY=:0.0 && /usr/bin/xmms)
15 * * * * DISPLAY=:0.0;export DISPLAY&& /usr/bin/xmms
16 * * * * (DISPLAY=:0.0;export DISPLAY&& /usr/bin/xmms)

代码:
11 * * * * DISPLAY=:0.0 && export DISPLAY && /usr/bin/xmms
12 * * * * DISPLAY=:0.0 ; export DISPLAY ; /usr/bin/xmms
13 * * * * (DISPLAY=:0.0 && export DISPLAY && /usr/bin/xmms)
14 * * * * (DISPLAY=:0.0 ; export DISPLAY ; /usr/bin/xmms)
15 * * * /usr/bin/xmms -display 127.0.0.1:0.0


最后由 yjcong 编辑于 2008-05-25 21:18,总共编辑了 1 次

页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2008-05-25 7:56 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
在命令行里面,输入

echo $DISPLAY

看看这个环境变量到底是什么值。


页首
 用户资料  
 
5 楼 
 文章标题 :
帖子发表于 : 2008-05-25 18:43 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
roylez 写道:
在命令行里面,输入

echo $DISPLAY

看看这个环境变量到底是什么值。


回LZ,是 :0.0


页首
 用户资料  
 
6 楼 
 文章标题 :
帖子发表于 : 2008-05-25 18:54 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
crontab 不建议写太多东西, 建议用一个脚本启动

在 X 下开一个终端

代码:
echo '#!/bin/bash -e' >> startxmms.sh
# 将链接当前X需要的变量放进去
export >> startxmms.sh
# 启动程序
echo '/usr/bin/xmms /home/name/abc.mp3 &' >> startxmms.sh
chmod +x startxmms.sh


然后用cron定时启动这个script


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
7 楼 
 文章标题 :
帖子发表于 : 2008-05-25 19:44 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
谢谢LS,你写的命令在我的机器上生成如下的startxmms.sh

代码:
#!/bin/bash -e
declare -x COLORTERM="Terminal"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-rO3jJzcf7b,guid=ff9b4347655e3fb35732390048393a3d"
declare -x DESKTOP_SESSION="IceWM"
declare -x DISPLAY=":0.0"
declare -x GDMSESSION="IceWM"
declare -x GDM_LANG="zh_CN.UTF-8"
declare -x GDM_XSERVER_LOCATION="local"
declare -x GTK_IM_MODULE="scim"
declare -x HISTCONTROL="ignoreboth"
declare -x HOME="/home/name"
declare -x LANG="zh_CN.UTF-8"
declare -x LANGUAGE="zh_CN.UTF-8"
declare -x LESSCLOSE="/usr/bin/lesspipe %s %s"
declare -x LESSOPEN="| /usr/bin/lesspipe %s"
declare -x LOGNAME="name"
declare -x LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.avi=01;35:*.fli=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.flac=01;35:*.mp3=01;35:*.mpc=01;35:*.ogg=01;35:*.wav=01;35:"
declare -x OLDPWD
declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
declare -x PWD="/home/name"
declare -x QT_IM_MODULE="scim"
declare -x SHELL="/bin/bash"
declare -x SHLVL="1"
declare -x SSH_AGENT_PID="4910"
declare -x SSH_AUTH_SOCK="/tmp/ssh-MWYSQl4865/agent.4865"
declare -x TERM="xterm"
declare -x USER="name"
declare -x USERNAME="name"
declare -x WINDOWID="16777817"
declare -x XAUTHORITY="/tmp/.gdmHYQOBU"
declare -x XMODIFIERS="@im=SCIM"
/usr/bin/xmms /homg/name/abc.mp3&


然后我用crontab -e
11 * * * * /home/name/startxmms.sh

可是还是没有xmms启动啊。


最后由 yjcong 编辑于 2008-05-25 21:19,总共编辑了 1 次

页首
 用户资料  
 
8 楼 
 文章标题 :
帖子发表于 : 2008-05-25 19:48 
头像

注册: 2006-07-02 11:16
帖子: 12522
地址: 廣州
送出感谢: 0 次
接收感谢: 8
你试试在 Ctrl-Alt-F1 控制台下登录运行这个脚本 ( 保持X开着 )


_________________
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。


页首
 用户资料  
 
9 楼 
 文章标题 :
帖子发表于 : 2008-05-25 20:41 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
yjcong 写道:
roylez 写道:
在命令行里面,输入

echo $DISPLAY

看看这个环境变量到底是什么值。


回LZ,是 :0.0


还有个比较间接的办法看出错的信息:

你先装个发信的软件,例如sendmail/postfix/esmtp,不用配置,只要装完之后确定有/usr/bin/sendmail文件存在就行。然后cron里面的任务执行的时候,如果有命令行输出,会自动给你发邮件,位置当然是到/var/spool/mail/username下。你在时间到了之后,查看下新邮件里面的错误信息就可以确定问题了。


页首
 用户资料  
 
10 楼 
 文章标题 :
帖子发表于 : 2008-05-25 20:50 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
控制台下同样是启动不了, 没有任何错误提示


页首
 用户资料  
 
11 楼 
 文章标题 :
帖子发表于 : 2008-05-25 20:55 
头像

注册: 2005-10-04 10:59
帖子: 1928
地址: 上海
送出感谢: 0 次
接收感谢: 1
命令行直接启动xmms也不行?那估计没治了。。


页首
 用户资料  
 
12 楼 
 文章标题 :
帖子发表于 : 2008-05-25 21:08 
头像

注册: 2008-02-17 23:47
帖子: 22109
地址: 美丽富饶的那啥星球
送出感谢: 11
接收感谢: 82
yjcong 写道:
谢谢LZ

楼主谢LZ :?:
第一次见到对自己这么客气的耶 :lol:


_________________
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手


页首
 用户资料  
 
13 楼 
 文章标题 :
帖子发表于 : 2008-05-25 21:17 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
adagio 写道:
yjcong 写道:
谢谢LZ

楼主谢LZ :?:
第一次见到对自己这么客气的耶 :lol:


是失误, 应为LS


页首
 用户资料  
 
14 楼 
 文章标题 :
帖子发表于 : 2008-05-27 9:43 
头像

注册: 2006-02-28 3:11
帖子: 2470
送出感谢: 0 次
接收感谢: 0 次
roylez 写道:
yjcong 写道:
roylez 写道:
在命令行里面,输入

echo $DISPLAY

看看这个环境变量到底是什么值。


回LZ,是 :0.0


还有个比较间接的办法看出错的信息:

你先装个发信的软件,例如sendmail/postfix/esmtp,不用配置,只要装完之后确定有/usr/bin/sendmail文件存在就行。然后cron里面的任务执行的时候,如果有命令行输出,会自动给你发邮件,位置当然是到/var/spool/mail/username下。你在时间到了之后,查看下新邮件里面的错误信息就可以确定问题了。


命令行下直接用命令是可以启动的。 安你的方法, 我到/var/spool/mail/里看了, 出了
代码:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (try installed on Tue May 27 03:34:19 2008)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)

就是crontab -l显示的东西了。 我没找到任何提示错误的信息。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 14 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译