[Comm] Запуск иксовой программы через cron или at

Alex Yustasov =?iso-8859-1?q?yust_=CE=C1_anti-leasure=2Eru?=
Ср Дек 14 10:40:59 MSK 2005


On Tue, Dec 13, 2005 at 10:46:28PM +0200, Alex Yustasov wrote:
> On Tue, Dec 13, 2005 at 10:26:21PM +0300, Sergey Lizogub wrote:
> > Tue, 13 Dec 2005 22:05:01 +0300
> > Damir Shayhutdinov:
> > 
> > > 13.12.05, Sergey Lizogub<linthong на mail.ru> написал(а):
> > > >         Как заставить cron или at запускать иксовую программу  если
> > > > иксы загружены (на tty7)?
> > > >         При попытке получаю письмо со словами::
> > > >
> > > >         Error: Can't open display:
> > > >
> > > Установить нужное значение переменной DISPLAY перед запуском иксовой
> > > программы.
> > 
> > 	А как?
> $ DISPLAY=:0.0 <команда>

Для at скорее всего будет работать.
В hibernate вызывается xscreensaver-command -lock, для вызова из acpid

#!/bin/bash

    for xpid in `pidof xscreensaver` ; do
	xuser=`awk 'BEGIN{RS="\\000";FS="="}($1 == "USER"){print $2}' < /proc/$xpid/environ`
	xdisp=`awk 'BEGIN{RS="\\000";FS="="}($1 == "DISPLAY"){print $2}' < /proc/$xpid/environ`
	xauth=`awk 'BEGIN{RS="\\000";FS="="}($1 == "XAUTHORITY"){print $2}' < /proc/$xpid/environ`
	if [ -z "$xauth" ] ; then
	    xhome=`awk 'BEGIN{RS="\\000";FS="="}($1 == "HOME"){print $2}' < /proc/$xpid/environ`
	    xauth="$xhome/.Xauthority"
	fi

    done
    DISPLAY=$xdisp XAUTHORITY=$xauth su $xuser -c "xscreensaver-command -lock"

Может еще нужно указывать XAUTHORITY и запускать из под пользователя.
Искать окружение можно по менеджеру например, если нет xscreensaver.

-- 
    Alex Yustasov



Подробная информация о списке рассылки community