Cómo funcionan los niveles de ejecución
El nivel de ejecución de un sistema (también conocido como estado init) define qué servicios y recursos están disponibles para los usuarios. Un sistema sólo puede estar en un nivel de ejecución a la vez.
Oracle Solaris tiene ocho niveles de ejecución, que se describen en la tabla siguiente. El nivel de ejecución predeterminado se especifica en el archivo /etc/inittab como nivel de ejecución 3.
Tabla 4-1 Niveles de ejecución de Oracle Solaris | | | |
0
| Estado de apagado
| Apagado
| Para cerrar el sistema operativo, de modo que sea seguro desactivar la alimentación del sistema.
|
|
| Usuario único
| Para ejecutar como un único usuario con algunos sistemas de archivos montados y accesibles.
|
1
| Estado administrativo
| Usuario único
| Para acceder a todos los sistemas de archivos disponibles. Los inicios de sesión de usuario están desactivados.
|
2
| Estado multiusuario
| Multiusuario
| Para las operaciones normales. Varios usuarios pueden acceder al sistema y a todos los sistemas de archivos. Todos los daemons se están ejecutando, excepto los daemons del servidor NFS.
|
3
| Nivel de multiusuario con recursos NFS compartidos
| Multiusuario
| Para las operaciones normales con recursos NFS compartidos. Este es el nivel de ejecución predeterminado.
|
4
| Estado multiusuario alternativo
| Multiusuario
| No está configurado de manera predeterminada, pero está disponible para ser usado por los clientes.
|
5
| Estado de apagado
| Apagado
| Para cerrar el sistema operativo, de modo que sea seguro desactivar la alimentación del sistema. Si es posible, desactiva de forma automática la alimentación en los sistemas que admiten esta función.
|
6
| Estado de reinicio
| Reinicio
| Para detener el sistema operativo y reiniciar en el estado definido por la entrada initdefault en el archivo /etc/inittab. El servicio SMF, svc:/system/boot-config:default, está activado de manera predeterminada. Cuando se establece la propiedad config/fastreboot_default en true, init 6 omite determinados pasos de inicialización y prueba del firmware, en función de las capacidades específicas del sistema. Consulte Aceleración del proceso de reinicio.
|
|
Además, el comando svcadm se puede utilizar para cambiar el nivel de ejecución de un sistema seleccionando un hito en el que desea ejecutar. La siguiente tabla muestra qué nivel de ejecución corresponde a cada hito.
Tabla 4-2 Niveles de ejecución e hitos de SMF | |
S
| milestone/single-user:default
|
2
| milestone/multi-user:default
|
3
| milestone/multi-user-server:default
|
|
Qué sucede cuando un sistema se inicia en un estado multiusuario (nivel de ejecución 3)
El proceso init se inicia y lee las propiedades que se definen en el servicio SMF svc:/system/environment:init para establecer las variables de entorno. De manera predeterminada, sólo se define la variable TIMEZONE.
A continuación, init lee el archivo inittab y hace lo siguiente:
Ejecuta cualquier entrada de proceso que tenga sysinit en el campo action, de forma que cualquier inicialización especial se pueda realizar antes de que los usuarios inicien sesión en el sistema.
Pasa las actividades de inicio a svc.startd.
Para obtener una descripción detallada de cómo el proceso init utiliza el archivo inittab, consulte la página del comando man init(1M).
Cuándo utilizar niveles de ejecución o hitos
En general, los hitos y los niveles de ejecución no se cambian con frecuencia. Si es necesario, lo apropiado sería usar el comando init para cambiar a un nivel de ejecución, que también cambiará el hito. El comando init también sirve para cerrar un sistema.
Sin embargo, el inicio de un sistema con el hito none puede ser muy útil para depurar los problemas de inicio. No hay un nivel de ejecución equivalente al hito none. Para obtener más información, consulte Cómo investigar problemas de inicio de servicios durante el inicio del sistema de Gestión de los servicios del sistema en Oracle Solaris 11.2
.
Determinación del nivel de ejecución actual del sistema
Para determinar el nivel de ejecución actual del sistema, utilice el comando who -r.
Ejemplo 4-11 Determinación del nivel de ejecución de un sistema
La salida del comando who –r muestra información acerca del nivel de ejecución actual de un sistema y también acerca de los niveles de ejecución anteriores.
$ who -r
. run-level 3 Dec 13 10:10 3 0 S
$
| |
run-level 3
| Identifica el nivel de ejecución actual
|
Dec 13 10:10
| Identifica la fecha del último cambio de nivel de ejecución
|
3
| También identifica el nivel de ejecución actual
|
0
| Identifica el número de veces que el sistema ha estado en este nivel de ejecución desde el último reinicio
|
S
| Identifica el nivel de ejecución anterior
|
|