Entendiendo los scripts de control de Solaris Runtime

Los scripts de control de tiempo de ejecución son responsables de iniciar y detener los servicios cuando el sistema cambia los niveles de ejecución, como durante el arranque y el apagado. Estos scripts residen en los directorios rc # .d donde el signo # es reemplazado por el nivel de ejecución, como rc2.d, rc3.d y rc0.d.


Los scripts de control de tiempo de ejecución bien escritos deben aceptar al menos iniciar y detener como parámetros de tiempo de ejecución y, opcionalmente, pueden aceptar parámetros adicionales como reinicio y estado. Cuando un script de control de tiempo de ejecución se ejecuta con un parámetro de inicio, inicia los procesos de los que es responsable. Del mismo modo, el parámetro stop hace que el script finalice esos procesos.

Dentro de los directorios de control de tiempo de ejecución hay un número de secuencias de comandos de control de tiempo de ejecución que comienzan con K o S mayúsculas seguidas de dos números. A medida que el sistema cambia su nivel de ejecución, los scripts en el directorio correspondiente se ejecutan en orden ordenado. Por lo tanto, una secuencia de comandos que comienza con K00 se ejecutará antes de K99 que se ejecutará antes de S00. Una secuencia de comandos que comienza con la letra K es una secuencia de comandos de eliminación y se ejecutará con un parámetro de detención. Los scripts S se ejecutarán con un parámetro de inicio. De esta manera, se puede utilizar el mismo script para iniciar y detener procesos.

Es común colocar un script genérico, por ejemplo, un servicio de noticias, en /etc/init.d y luego crear enlaces lógicos a ese script en el directorio rc # .d adecuado con una combinación adecuada de K o S y un número. Por ejemplo, para crear una secuencia de comandos de eliminación temprana en rc0.d para un servicio de noticias rc script ubicado en /etc/init.d, ejecute como superusuario:

cd /etc/rc0.d
ln -s ... /init.d/newservice K05newservice

Cuando apaga o reinicia el sistema, cambia su nivel de ejecución a 6 o 5, respectivamente. No hay directorios /etc/rc5.d o /etc/rc6.d. Dado que cambiar al nivel de ejecución 0 (indicador de inicio de arranque) implica el mismo procedimiento que al apagar o reiniciar, los niveles de ejecución 5 y 6 comparten el directorio /etc/rc0.d. Es importante incluir los scripts de eliminación para servicios como las bases de datos que podrían dañarse si no se cerraran correctamente.

Para ver un ejemplo de un script de control de tiempo de ejecución, vea la receta técnica Crear un script básico de control de tiempo de ejecución de Solaris