【问题标题】:Start X Program with /etc/crontab on Debian 6.0.4 [closed]在 Debian 6.0.4 上使用 /etc/crontab 启动 X 程序 [关闭]
【发布时间】:2012-06-15 07:36:57
【问题描述】:

我正在尝试使用 crontab 启动 X-Programm(例如 gedit 或 Firefox)。 我已经搜索了很长时间,论坛上到处都是帮助,不幸的是,没有什么对我有用。

我正在尝试通过 Crontab 启动 X-Programm。 出于测试目的,我做了以下工作:

在我的“/etc/crontab”中输入(我的用户帐户是 mrs,我已登录):

* * * * * mrs /bin/bash /tmp/test.sh

cat /tmp/test.sh:

#!/bin/bash
DISPLAY=":0.0"
gedit 1> /tmp/out 2>/tmp/err

cat /tmp/err:

No protocol specified
(gedit:3456): Gtk-WARNING **: cannot open display: :0.0

/tmp/out 为空!

【问题讨论】:

  • 我试过export DISPLAY=":0.0" 和export echo DISPLAY=":0.0",但是也没用!

标签: unix debian crontab xserver xauth


【解决方案1】:

我找到了解决办法! 问题是,我没有 XAUTHORITY。 所以我必须得到一个有效的 XAUTHENTICATION。 我用 xhost 和 xauth 尝试了很多,但没有帮助。现在我发现了另一种与 gnome/gdm3 一起使用的简单方法,如果您可以访问根 Crontab:

export DISPLAY=":0.0"
[ -z $USER ] && USER=$( who | awk '{ print $1 }' | sort | uniq >/tmp/test )
for I in /var/run/gdm3/*; do
    AUTHUSER="`echo $I | awk -F '-' '{ print $3 }'`"
    for J in $USER; do
        [ "${AUTHUSER}" = "${J}" ] || continue
        USER="$J"
        export XAUTHORITY="${I}/database" && break
    done
done
sudo -u ${USER} /Pfad/zum/xProgramm

模具变量 $USER kann man vorher belegen, andernfalls wird sie mit mindestens einem bereits eingeloggten 用户 beschrieben。 Vorraussetzung ist allerdings, dass ein User am System auch angelmeldet ist.

Ich habe dies getestet, und es klappt problemlos!

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 2015-05-23
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多