View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Arranque (de X-Windows) en las OPs de Alto Arenal

El objetivo del estudio era reiniciar el Servidor-X en una OP de AltoArenal (Captura+CTC+Radiotelefonía, sin POI).

Para lograrlo, lo primero fue analizar el modo de arranque de las X-windows, y las aplicaciones en estas máquinas.
Y esto precisamente es lo que se pretende documentar aquí.


Orden de arranque, NombreProceso (Fichero asociado):

 dtrc (/sbin/init.d/dtlogin.rc)
  | 
  |--> dtlogin (/usr/dt/bin/Xsession)
        |
        |--> X  [ Servidor X ]
        |--> dtlogin (/usr/local/dt/bin/Xsession.dsa)
               |
               |--> ksh -c DT=true; export DT; (/home/opermm/.login y .xsession)
                      |
                      |--> mwm  [ Windows Manager ]

  - Tras haber arrancado el servidor X, se llama al proceso dtlogin con un fichero Xsession particular. 
  - Dentro del fichero Xsession.dsa se hace la llamada a los ficheros .xsession y .login del usuario opermm.
  - Y finalmente, es dentro del archivo .xsession donde se va invocando tanto a las aplicaciones 
    (CTC, Captura y Radiotelefonía) como al Windows Manager.

Forzar arranque automático de las X con un usuario concreto (sin identificarse en el cajetin del Login):

Añadir en el archivo /etc/dt/config/Xaccess una línea con la siguiente sintaxis:
   <hostname> BYPASS_LOGIN <user_login>
    Ej:   op23_mm BYPASS_LOGIN opermm

Problemas encontrados:

Creamos el Script /sbin/init.d/Operador donde se mata las aplicaciones y después se matan los procesos X, mwm y dtlogin.
Para este ultimo, no vale con ejecutar:
  /sbin/init.d/dtlogin.rc stop
porque si no se matan los 2 procesos dtlogin, la existencia o no del fichero Xaccess no se detecta.

Para conseguir el arranque automático con el usuario adecuado (hay un usuario de sesion y otro para el POI) fue necesario dar permiso recursivo 777 a:
    /users/ctcs  (ya que de ahi cuelgan todos los ejecutables del CTC)
    /home/etc    (ya que existe una base de datos de operadores en /home/etc/ws/mmbd_claves.op)

Además, fue necesario actualizar la variable $DISPLAY y la variable $HOME utilizadas en /home/opermm/.xsession
También modificamos /usr/local/dt/bin/Xsession.dsa para añadir un ficherillo de trazas.

Arranque:

Es necesario invocar el script /sbin/init.d/Operador desde el "crontab" ya que si se invoca desde una ventana, al matar el propio script el "Entorno gráfico", éste nunca termina.