GNU/Linux >> Tutoriales Linux >  >> Linux

Usando Runit en Devuan

Devuan y varias distribuciones de Linux sin systemd proporcionan sistemas de inicio alternativos. unidad es uno de los más básicos y ligeros. Tener una base de código pequeña facilita el mantenimiento y también la auditoría de errores y problemas de seguridad. También puede ejecutarse en otros Unices como *BSD, MacOSX, etc. En este artículo, voy a cubrir los conceptos básicos de runit esquema de inicio con Devuan como base. Sin embargo, la mayoría de los conceptos y comandos deberían ser los mismos para otras distribuciones. Puede consultar las referencias al final para obtener más información.

Mecanismo de trabajo

Según la documentación oficial, runit es un esquema init con supervisión de servicio. Eso significa que maneja el inicio automático de los servicios durante el arranque, además de monitorearlos y reiniciarlos. De acuerdo con la filosofía de UNIX, runit consta de varias herramientas pequeñas y archivos binarios (aunque no hasta el punto de ser inflados *ejem* systemd *ejem* ) para interactuar con él y otros demonios.
Al igual que con la mayoría de los sistemas de inicio, el kernel carga el primer proceso:/sbin/init que es proporcionado por el programa runit-init(8). Luego se reemplaza a sí mismo con runit(8). runit es lo que realiza el arranque, ejecución y apagado del sistema y lo hace en tres etapas:

  • Etapa 1 :
    El sistema realiza las tareas de inicialización únicas a través de /etc/runit/1 . Recibimos un caparazón de emergencia si esta etapa falla.
  • Etapa 2 :
    runit inicia /etc/runit/2 que maneja los niveles de ejecución a través de runsvdir(8). Esta es la etapa en la que permanece nuestro sistema cuando se está ejecutando. También podemos dar la solicitud de reinicio Ctrl+Alt+Delete en esta etapa.
  • Etapa 3:
    Si /etc/runit/2 regresa sin errores, lo que sucede durante la detención o reinicio del sistema, runit inicia /etc/runit/3 . Las tareas de apagado se realizan en la etapa 3.

Niveles de ejecución

Una instalación estándar de runit tiene 2 niveles de ejecución , default y single . Un directorio de nivel de ejecución contiene enlaces simbólicos a otros directorios de servicios. La mayoría de las tareas se realizan y la mayoría de los servicios se inician en el default nivel de ejecución Pero podemos hacer nuestros propios niveles de ejecución creando una nueva carpeta en /etc/runit/runsvdir/ y vincular nuestros servicios deseados a ese nivel de ejecución. Mi instalación de Devuan tiene otros dos niveles de ejecución creados.

Runit cambia los niveles de ejecución cambiando el directorio runsvdir el programa se está ejecutando. Esto es manejado por runsvchdir dominio.

Por ejemplo, para cambiar a single nivel de ejecución del usuario:
# runsvchdir single

También podemos pedirle a runit que se inicie en un nivel de ejecución específico durante el arranque en lugar del default . Podemos hacerlo agregando el runitdir=name parámetro del núcleo. Obviamente, el nivel de ejecución name debería existir, es decir, un directorio debe estar disponible en /etc/runit/runsvdir con ese nombre.

Por ejemplo, para iniciar directamente en el modo de usuario único (es decir, el single nivel de ejecución), podemos añadir runitdir=single al parámetro del núcleo.

En GRUB, podemos hacer esto presionando e mientras resalta una entrada en el menú del gestor de arranque.

Presionando Ctrl+X hará que el sistema arranque con los parámetros dados, llevándonos efectivamente al modo de usuario único.

Servicios de gestión

Un directorio de servicio contiene archivos y scripts necesarios para administrar el daemon. Los directorios de servicios se encuentran en /etc/sv directorio.

Estos directorios de servicios deben estar vinculados a /etc/service de lo contrario runit no podrá acceder a ellos.

Creando el enlace simbólico en /etc/service esencialmente enable para que se inicie en el momento del arranque. Podemos disable un servicio creando un archivo llamado down dentro del directorio de servicios.

Aunque runit tiene varios programas, normalmente solo necesitamos interactuar con el sv dominio. La sintaxis es equivalente a systemd 's systemctl comando.

Iniciar un servicio:

# sv start <service_name>

Detenerlo:

# sv stop <service_name>

Reiniciar o recargar un servicio:

# sv restart <service_name>

Consultar el estado de un servicio:

# sv status <service_name>

También hay una reescritura de sv comando en Rust llamado rsv . Sin embargo, no voy a cubrirlo en este artículo. Consulte el enlace entre las referencias a continuación.


Referencias:

  • Página de inicio de Runit
  • rsv
  • Wiki Artix | Ejecutar
  • Linux vacío | Servicios y demonios:runit

Linux
  1. ¿Usando Notify-send con Cron?

  2. Git Autocompletar?

  3. Usando grep para buscar en reversa

  4. Usando nc para transferir archivos grandes

  5. Usando sftp como scp

Depurar Linux usando ProcDump

Redirección 301 usando NGINX

Consejos para usar la pantalla

Usando el comando Watch en Linux

Lanzamiento de tmux usando gnome-terminal

Usando grep vs awk