Bash:等到用户完全登录X.

时间:2012-06-24 14:39:53

标签: bash

我有一个bash脚本,由anacron每天启动,需要一些用户输入。这应该通过图形对话框来完成,比如kdialog offers。

有三种选择需要考虑:

  • “是的,今天开始任务” - >运行任务
  • “不,今天不要开始任务” - >退出脚本
  • 错误,用户未完全登录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

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

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

3 个答案:

答案 0 :(得分:2)

检查:

xprop -root

xprop 附带 x11-utils 包,很可能与X11一起安装......

另请查看 man 1 xprop 中的另请参阅部分:

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

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

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