PDA

View Full Version : Bash Script: Switch TV-Display


LimiT-MaTz
27-08-2005, 19:52
Ciao
Ho X configurato in modo da avere 2 monitor in modalità twinview poiche' non posso avere anche il TV-OUT abilitato contemporaneamente al Dual monitor ho deciso di fare uno scriptino tale da permettere lo switch (script che verra poi lanciato da lircd).
Ho pensato di realizzare lo script in questo modo:
file esterno in cui scrivo la modalità in cui sto operando (o DUAL o TV-OUT)
in base alla variabile (scritta sul file) sostituisco la giusta configurazione a xorg.conf.
Qui si presentava un problema per andare a scrivere il file /etc/X11/xorg.conf ho bisogno di avere i permessi di root per ovviare al problema ho scritto questo nella configurazione di /etc/sudoers
matz ALL=(root) NOPASSWD: /bin/cp
in modo da poter richiamere il comando cp con permessi di Root senza pass.
Dopo aver fatto questa operazione killo il server grafico poiche' non uso greeter e quindi non posso avere una soluzione del tipo /etc/init.d/xxx restart sono costretto a fare un killall X e poi rieseguirlo tramite startx

questo e' il codice:
#!/bin/bash
## OGNI VOLTA CHE VIENE ESEGUITO DA ROOT
## SWITCH DUAL-MONITOR A TV-OUT RIAVVIANDO IL SERVER
## E CAMBIANDO LA VARIABILE NEL $LOC

LOC="/home/matz/prova"
VAR=`cat $LOC`

case $VAR in
TV-OUT)
sudo cp /etc/X11/xorg.conf-FUNZ-DUAL /etc/X11/xorg.conf
echo DUALMON > $LOC
;;
DUALMON)
sudo cp /etc/X11/xorg.conf-FUNZ-TV-MONO /etc/X11/xorg.conf
echo TV-OUT > $LOC
;;
*)
## SIAMO IN UNA SITUAZIONE DI ERRORE E STOPPARE
exit
;;
esac
### RESTO DEL CODICE
killall X;startx

non funziona perche nel momento in cui arriva a killall X uccide tutti i figli del processo compreso lo script stesso e quindi non arrivo allo startx ...

Come posso risolvere?

come posso migliorare la parte relativa al sudo ?
Consigli ? Grazie
:D

Gavrila
28-08-2005, 14:25
ma scusa come l'hai provato questo script? come l'hai eseguito?

LimiT-MaTz
28-08-2005, 14:54
ma scusa come l'hai provato questo script? come l'hai eseguito?

come intendi come l'hai eseguito?

sh script (da utente normale).
funziona fa il cambio del file,tira giu' il server,ma non lo ritira su.