[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Diferencia entre ejecución init y root



Aritz Beraza Garayalde [Rei] escribió:
El Viernes, 27 de Enero de 2006 00:03, Havoline escribió:

Aritz Beraza Garayalde [Rei] escribió:

El 26/01/06, Havoline<varelabouzas@yahoo.es> escribió:

lo arranco con este script para init, al arrancarlo así la aplicación
web no es capaz de utilizar el programa khtml2png para hacer capturas de
webs, pero si lo arranco desde una consola utilizando el mismo script si
funciona el khtml2png (puede utilizar las X)

cat /etc/init.d/tomcat
#
# Start/Shutdown the Tomcat server
#
BIN=/usr/local/apache-tomcat-5.5.12/bin
export JAVA_HOME=/usr/local/jdk1.5.0_01
export DISPLAY=:0.0
#
#
case "$1" in
       stop)
       # Shutdown Tomcat.
       echo -n "Sending Tomcat processes the shutdown..."
       $BIN/shutdown.sh
       #
       ;;
       start)
       # Start Tomcat.
       echo -n "Starting Tomcat Server..."
       $BIN/startup.sh tomcat
       #
       ;;
       *)
       echo "Usage: $N {start|stop}" >&2
               exit 1
       ;;
esac

exit 0
#

El script intenta usar el display, ok, pero tiene permisos??? Es
decir, el dueño de la sesión X (anque sea el mismo root) ha ejecutado
xhost +127.0.0.1 ??? Si lo lanzas desde una consola en el propio
entorno X no hay problema, por que (probablemente) seas el dueño de la
sesión X. Añade el xhost +127.0.0.1 (como solución rápida) a tu script
de inicio de sesión gráfica.

lo lanzo desde una consola... pero por ssh, entro remotamente, hago su,
y luego /etc/init.d/tomcat stop y luego start y ya funciona.

ahora acabo de probar añadiendo xhost +127.0.0.1 justo despues de export
DISPLAY=:0.0 y no ha cambiado nada (y el script de tomcat es el último
en ejecutarse, a continuación del /etc/init.d/kdm), con lo que se supone
que ya existen X.



No, el xhost +127.0.0.1 lo has de ejecutar en la sesión gráfica, no en el script que lanza el programa. Por ejemplo, mi script de inicio de sesión gráfica (~/.xsession, en el gdm/kdm escojo la sesion default) pondría una linea con el xhost +127.0.0.1, o prueba antes a ejecutarlo a mano en cualquier consola dentro del entrono gráfico, y luego ir auna consola de texto (Ctrl+Alt+F1 para que nos entedamos) y prueba a ejecutar el script este.

Ya pero volvemos al problema inicial, a la fuerza tengo estar al lado del servidor, y yo lo que quiero es que si se reinicia por cualquier causa, el servidor solo arranque todos los servicios y que funcionen.

Si lo pongo en ~/.xsession, como poco tendría que arrancar la session de un usuario, y a mano si que funciona en una consola de texto también.

Funciona si lo ejecuto, como root en las X, en una texto(Ctrl+Alt+F1|F2|F3|F4...), por ssh... pero no funciona si lo ejecuta el init al inicio.

Y el código java en cuestión, por si aporta algo es:
if(!FileOperations.existsFile(outFich)) {
  	Runtime rt = Runtime.getRuntime();

String cmd = "/usr/local/kde/bin/khtml2png -display :0 --width 800 --height 1000 --scaled-width 100 http://"; + URL + " " + outFich;

      	System.out.println("Executando " + cmd);
System.out.println("Variable de entorno DISPLAY=" + System.getenv("DISPLAY"));

       	Process p = rt.exec(cmd);
        p.waitFor();
}

		
______________________________________________ LLama Gratis a cualquier PC del Mundo. Llamadas a fijos y móviles desde 1 céntimo por minuto. http://es.voice.yahoo.com



Reply to: