Unix 在Debian 6.0.4上使用/etc/crontab启动X程序

Unix 在Debian 6.0.4上使用/etc/crontab启动X程序,unix,debian,crontab,xserver,xauth,Unix,Debian,Crontab,Xserver,Xauth,我正在尝试用crontab启动一个X程序(例如gedit或Firefox)。 我已经搜索了很长一段时间,论坛上充满了帮助,不幸的是没有什么对我有用 我正在尝试的是,通过Crontab启动一个X程序。 出于测试目的,我做了以下工作: 我的“/etc/crontab”中的条目(我的用户帐户是mrs,我已登录): cat/tmp/test.sh: #!/bin/bash DISPLAY=":0.0" gedit 1> /tmp/out 2>/tmp/err cat/tmp/err: No

我正在尝试用crontab启动一个X程序(例如gedit或Firefox)。 我已经搜索了很长一段时间,论坛上充满了帮助,不幸的是没有什么对我有用

我正在尝试的是,通过Crontab启动一个X程序。 出于测试目的,我做了以下工作:

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

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为空

我找到了解决办法! 问题是,我没有X权限。 所以我必须得到一个有效的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将在其eingeloggten用户beschrieben之前通知您。这是一个很好的解决方案,用户使用的是一个很好的系统

我已经死了,还有其他问题

我找到了解决办法! 问题是,我没有X权限。 所以我必须得到一个有效的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将在其eingeloggten用户beschrieben之前通知您。这是一个很好的解决方案,用户使用的是一个很好的系统

我已经死了,还有其他问题

我尝试了导出显示=“:0.0”和导出回声显示=“:0.0”,但它也不起作用!我尝试了导出显示=“:0.0”和导出回声显示=“:0.0”,但它也不起作用!