galeon & debian
Maurizio Paolini
paolini a dmf.unicatt.it
Mar 8 Apr 2003 13:27:58 UTC
> From: Sergio Bevilacqua <clockwork.orange a inwind.it>
>
> On Mon, 2003-04-07 at 09:53, Maurizio Paolini wrote:
> > fammi sapere, nel caso posso darti piu' dettagli. Oppure puoi farmi una
> > visita qui in via Musei, e vedere come funziona la nostra soluzione.
> >
> > mp
>
> oddio... penso che un diplomatico accordo via e-mail sia più che
> sufficiente, sempre che sia possibile.
>
> Per il momento mi interessa capire la storia del browser che gira senza
> window manager... è quacosa tipo links che gira in bash, o un browserc
> eh in qualche modo funziona in X, seppur senza window manager (la
> buutto, anche se mi sembra una cosa impossibile)?
Perche' impossibile? E' invece proprio nella filosofia di X. Il window
manager non e' affatto necessario per il funzionamento degli applicativi
grafici, serve *solo* per poter spostare/ridimensionare le finestre,
eventualmente permettere che si lancino altre applicazioni con menu vari,
pannelli (se si tratta di un desktop manager) e quant'altro.
Nel nostro caso abbiamo proceduto cosi':
nel file /etc/rc.d/rc.local (eseguito al boot)
[...]
/usr/local/bin/browse (fa tutto)
/sbin/poweroff (spegne la macchina)
[...]
poi il programma vero e proprio. Sembra complicato, ma la parte piu'
ostica e' far partire il browser come utente "nobody", mentre il server
X parte come 'root'. Nel nostro caso viene
lanciato "netscape", che ovviamente puoi sostituire con il tuo browser
preferito.
------------------------- browse -------------------
#!/bin/sh
#
# $1 utente con la cui UID si vuole eseguire il comando
# $2 display da utilizzare (se gia attivo), nella forma ":n"
#
uid=nobody
if [ -n "$1" ]
then
uid=$1
shift
fi
display="activate"
if [ -n "$1" ]
then
display="$1"
shift
fi
test=""
if [ -n "$1" ]
then
test="$1"
fi
if [ "$display" = "activate" ]
then
if [ -n "$test" ] ; then
echo "activating server X"
echo xinit $0 $uid ":0" $* -- -ac -bpp 16
fi
xinit $0 $uid ":0" $* -- -bpp 16
exit $?
fi
uidn=`id | cut -f2 -d\( | cut -f1 -d\)`
if [ "$uidn" != "$uid" ]
then
if [ -n "$test" ] ; then
echo changing uid from $uidn to $uid
echo su $uid -c $0 $uid $display $*
fi
su $uid -c "$0 $uid $display $*"
exit $?
fi
if [ -n "$test" ] ; then
echo "finally executing command..."
echo "my id is:"
id
fi
export HOME=/home/nobody
/usr/bin/netscape -display $display -geometry 1024x768+0+0 http://www.bplab.bs.unicatt.it/help/
------------------------------------------------------------------
Maggiori informazioni sulla lista
Lug
|