El 23/01/06, Havoline<varelabouzas@yahoo.es> escribió:
¿Que diferencias hay entre la ejecución de un programa por init o por
consola de root?
A nivel de procesos, que los procesos ejecutados por init son hijos de
este. Luego, si lanzas un programa como root (salvo que cambie de
propietario en la ejecución), su dueño será root.
El problema deriva de este (que viene de conseguir que el root tenga
permisos para usar las X):
Estado actual:
He ido a /etc/kde3/kdm/kdmrc y he añadido en [X-*-Core]
AuthFile=/var/run/xauth/XauthFile
Luego he creado el enlace
ln -s /var/run/xauth/XauthFile /root/.Xauthority
En /root/.profile he añadido
DISPLAY=:0.0
export DISPLAY
Y ya funciona el comando en una consola como superusuario, pero ahora el
problema es que en código java, dentro de una aplicación web para
tomcat, si dejo que tomcat se arranque con init (/etc/init.d/tomcat
start), la aplicación no hace que se ejecute el programa. Pero si dentro
de una consola como superusuario arranco el tomcat con el mismo comando
/etc/init.d/tomcat start, si puedo utilizar la aplicación y que el
programa que lanza haga capturas de pantalla de las webs.
Tomcat... java... bufffff Da algún error tomcat al cargarse? Recuerda
que java requiere tener classpath bien configurado, y según donde
tengas definida tu variable classpath, esta nose cargará hasta que
inicies una sesión como root. (un ejemplo, si lo tienes en .bashrc que
exporte classpath, no lo cargará hasta que loguees como root, así que
los procesos que lance init como root no tendrán disponible ese valor
de classpath incluso si logueas aposteriori como root). Por lo demás,
ya he terminado mis 4 meses de sufrimiento en desarrollo de
aplicaciones web con java. Ahora a ver si consigo arrinconarlo en un
lugar donde no moleste demasiado y dedicarme a darles un vistazo a
Django y Rails.