Comando init de Linux
Manual completo de comandos de Linux
¿Qué es el comando init?
initEs uno de los procesos más importantes en el sistema Linux; es el primer proceso a nivel de usuario creado por el kernel después del arranque del sistema (PID=1), y se encarga de iniciar y gestionar todos los demás procesos del sistema.
Características clave
- Gestión de procesos: como proceso padre de todos los procesos
- Control de niveles de ejecución: gestiona los diferentes estados de ejecución del sistema
- Gestión de servicios: inicia y detiene servicios del sistema
- Inicialización del sistema: ejecuta scripts de arranque y configuración
Sintaxis básica del comando init
init [运行级别]
Explicación de los niveles de ejecución
El sistema Linux define 7 niveles de ejecución estándar:
| Nivel de ejecución | Descripción | Uso típico |
|---|---|---|
| 0 | Apagado | Estado de apagado del sistema |
| 1 | Modo monousuario | Mantenimiento del sistema / privilegios de root |
| 2 | Modo multiusuario (sin NFS) | Modo multiusuario básico |
| 3 | Modo multiusuario completo | Interfaz de línea de comandos estándar |
| 4 | Reservado | Definido por el usuario |
| 5 | Modo de interfaz gráfica | Modo multiusuario con GUI |
| 6 | Reiniciar | Reinicio del sistema |
Aplicaciones prácticas del comando init
1. Ver el nivel de ejecución actual
Ejemplo
# o
runlevel
2. Cambiar de nivel de ejecución
Ejemplo
init 5 # Cambiar al modo de interfaz gráfica
init 0 # Apagar el sistema
init 6 # Reiniciar el sistema
3. Manejo de emergencias
Ejemplo
Evolución de init en los sistemas Linux modernos
1. System V init
Sistema de inicialización tradicional que utiliza el archivo de configuración /etc/inittab
Ejemplo
id:3:initdefault: # Nivel de ejecución predeterminado
si::sysinit:/etc/rc.d/rc.sysinit # Script de inicialización del sistema
2. Upstart (usado en versiones antiguas de Ubuntu)
Sistema init basado en eventos
3. systemd (distribuciones modernas principales)
Ejemplo
systemctl isolate graphical.target # Equivalente a init 5
Ejercicios prácticos
Ejercicio 1: Experimento de cambio de nivel de ejecución
Cambiar del modo gráfico al modo de línea de comandos
init 3
Observar los cambios de servicios y volver al modo gráfico
init 5
Ejercicio 2: Experiencia con el modo de mantenimiento del sistema
Entrar en modo monousuario
init 1
Realizar comprobación del sistema de archivos
fsck /dev/sda1
Precauciones
- Requisitos de permisos: el comando init generalmente requiere privilegios de root
- Usar con precaución: usar directamente init 0 o init 6 puede provocar pérdida de datos no guardados
- Diferencias del sistema: diferentes distribuciones pueden tener diferentes implementaciones de init
- Impacto en los servicios: cambiar de nivel de ejecución detendrá/iniciará los servicios relacionados
Preguntas frecuentes
P: ¿Por qué mi sistema no tiene el archivo /etc/inittab?
R: Los sistemas con systemd ya no necesitan inittab; la forma de configuración ha cambiado.
P: ¿Cómo configurar el nivel de ejecución predeterminado?
Para sistemas systemd:
systemctl set-default multi-user.target # 相当于运行级别3
P: ¿Cuál es la diferencia entre los comandos init y shutdown?
Ambos acaban apagando el sistema, pero shutdown ofrece más opciones (como apagado diferido, notificación de difusión, etc.)