Comando init de Linux

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

who -r
# o
runlevel

2. Cambiar de nivel de ejecución

Ejemplo

init 3  # Cambiar al modo multiusuario de línea de comandos
init 5  # Cambiar al modo de interfaz gráfica
init 0  # Apagar el sistema
init 6  # Reiniciar el sistema

3. Manejo de emergencias

Ejemplo

init 1  # Entrar al modo de mantenimiento monousuario (requiere privilegios de root)

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

# Ejemplo típico de entrada inittab
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 multi-user.target  # Equivalente a init 3
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

  1. Requisitos de permisos: el comando init generalmente requiere privilegios de root
  2. Usar con precaución: usar directamente init 0 o init 6 puede provocar pérdida de datos no guardados
  3. Diferencias del sistema: diferentes distribuciones pueden tener diferentes implementaciones de init
  4. 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.)

Linux 命令大全Manual completo de comandos de Linux

Otras extensiones