2012-06-24 24 views
4

我有一个bash脚本,由anacron每天启动,需要一些用户输入。这应该通过图形对话框完成,如kdialog提供。Bash:等待,直到用户完全登录到X

有三个问题需要考虑:

  • “是的,开始今天的任务” - >运行任务
  • “不,不要今天开始的任务” - >退出脚本
  • 错误,用户不能完全登录到X - >重试1分钟

这里是我到目前为止的代码(脚本运行所讨论的用户):

while ! kdialog --title "Task $DATE" --msgbox "Please make preparations for today's task and press OK" 
do 
    logger -t task "waiting for display to become available" 
    sleep 1m 
done 

这有效,但我没有看到任何选项使用是否对话框并区分按钮单击“否,不要今天开始”和“错误,X服务器尚不可用于用户“ - 因为kdialog在两种情况下返回退出码1。

我想过使用不同的程序来检查X服务器是否已经可用,但是我没有想出使用哪种方法。任何人有更好的主意? (使用Kubuntu 10.04与KDE4,如果需要该信息...)

回答

2

检查:

 
xprop -root 

xprop配备X11-utils的包,最有可能与X11一起安装...

还要检查另请参阅人1 xprop

 
SEE ALSO 
     X(7), xdpyinfo(1), xwininfo(1), xdriinfo(1), glxinfo(1), xvinfo(1) 
+0

检查$ DISPLAY的环境除了速度更快并且不需要额外的程序以外,其它功能也是如此。 – technosaurus

+0

@technosaurus。你是坏的... Anacron从** init **脚本和** DISPLAY ** env var不是从X客户端填充....并且-1对于我的-1)) – gavenkoa

+1

抱歉等待那么久复选标记......但我为我的爸爸编写了这个脚本,他并不经常使用电脑。最后 - 昨天,他告诉我,它始终如一地工作,没有失败。谢谢! – orithena

0

只需使用任何标准的X程序。 ,我建议xdpyinfo,因为它只是文本。

-1

请考虑将其设为autostart entry,因为1)您可能实际上并不需要它开始每天和2)否则您需要找到显示。