Varios problemas se asocian con el inicio de Application Server al instalar Sun ONE Application Server como parte de la instalación de Solaris:
Se inician automáticamente todas las instancias de servidores de aplicaciones y administrativos en el inicio de Solaris. En muchos entornos, no se espera que se inicien automáticamente todas las instancias durante el inicio de Solaris. El inicio de cada instancia definida puede influir negativamente en la cantidad de memoria disponible en un sistema.
Cuando se inician automáticamente las instancias del servidor de aplicaciones y las administrativas del servidor, la secuencia de inicio de cada instancia se ejecuta como root. La ejecución de secuencias de inicio de instancias de usuarios no root pueden proporcionar acceso de usuarios no root a usuarios que sí lo son mediante la modificación de las secuencias de inicio de las instancias.
Durante la instalación de Sun ONE Application Server, se instalan la secuencia /etc/init.d/appserv y los enlaces simbólicos a las secuencias S84appserv y K05appserv en los directorios /etc/rc*.d/. Estas secuencias provocan que todas las instancias del servidor de aplicaciones y las administrativas del servidor, definidas como parte de la instalación del servidor de aplicaciones, se inicien y se detengan automáticamente durante el inicio y el cierre de Solaris.
La secuencia /etc/init.d/appserv contiene la sección de código siguiente:
case "$1" in 'start') /usr/sbin/asadmin start-appserv ;; 'stop') /usr/sbin/asadmin stop-appserv ;;
La ejecución del comando asadmin start-appserv provoca que la instancia del servidor de administración y todas las instancias del servidor de aplicaciones, definidas en todos los dominios administrativos, se inicien al arrancar Solaris. Debido a que las secuencias de inicio y de cierre del sistema se ejecutan como root, la secuencia de inicio para cada instancia del servidor de aplicaciones y administrativa del servidor también se ejecuta como root. La secuencia de inicio de la instancia es startserv y se encuentra en instance-dir/bin/startserv. Debido a que los usuarios que no son root pueden ser propietarios de las instancias, es posible que un usuario no root modifique las secuencias para ejecutar comandos como usuario root.
Si una instancia usa un puerto de red con privilegios, se debe ejecutar la secuencia startserv de la instancia como usuario root. Sin embargo, run as user se modifica normalmente en la configuración de la instancia para forzarla a ejecutarse como el usuario especificado después de que el usuario root haya arrancado la instancia en un principio.
Solución alternativa: lleve a cabo una de las soluciones alternativas siguientes, dependiendo del entorno.
Si el entorno no necesita que todas las instancias del servidor de aplicaciones y administrativas del servidor se inicien como usuario root, convierta en comentario la ejecución de los comandos asadmin start-appserv y asadmin stop-appserv en la secuencia /etc/init.d/appserv.
Si el entorno precisa el inicio de los dominios administrativos específicos o las instancias específicas dentro de un dominio administrativo o más, puede modificar o crear una secuencia para automatizar el proceso. Observe que los “dominios administrativos específicos” contienen la instancia administrativa del servidor y todas las instancias del servidor de aplicaciones de cada dominio.
Lleve a cabo uno de los pasos siguientes:
Modifique la secuencia /etc/init.d/appserv para iniciar los dominios o instancias de interés.
Defina las nuevas secuencias /etc/rc*.d/ que se ajusten a las necesidades de su entorno.
Consideraciones sobre el inicio: al modificar las secuencias de inicio de Solaris para que arranquen automáticamente los dominios específicos administrativos del servidor de la aplicación o las instancias específicas del servidor de aplicaciones, tenga en cuenta lo siguiente:
Inicio de un dominio específico: si desea iniciar la instancia administrativa del servidor y todas las instancias del servidor de aplicaciones de un dominio administrativo específico como usuario root, modifique las secuencias /etc/rc*.d/ del modo siguiente:
case "$1" in 'start') /usr/sbin/asadmin start-domain --domain production-domain ;; 'stop') /usr/sbin/asadmin stop-domain --domain production-domain ;;
Inicio de una instancia específica del servidor de aplicaciones como usuario no root: modifique las secuencias /etc/rc*.d/ para usar el comando su con la opción -c.
case "$1" in 'start') su - usera -c "/usr/sbin/asadmin start-instance --domain test-domain instance-a" su - userb -c "/usr/sbin/asadmin start-instance --domain test-domain instance-b" ;; 'stop') su - usera -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-a" su - userb -c "/usr/sbin/asadmin stop-instance --domain test-domain instance-b" ;;
Consulte Sun ONE Application Server 7 Administrator's Guide si desea más información sobre los comandos startup y shutdown, disponibles a través de la interfaz de la línea de comandos asadmin.