Cómo usar /etc/rc.local al iniciar

Cómo usar /etc/rc.local al iniciar
Contents
  1. La forma correcta (Systemd):
  2. Agregar su unidad Systemd:
  3. Conclusión:

los rc.local El script en algunas distribuciones de Linux y sistemas Unix es un script de inicio de superusuario, generalmente ubicado en el directorio /etc/etc/rc.d. El nombre del archivo rc se refiere a Run Control.

Rc.local es un script en desuso retenido por compatibilidad con los sistemas systemV.

Alguna vez fue un archivo universal que se encuentra en la mayoría de las distribuciones de Linux debido a su simplicidad para que los administradores de Linux establezcan scripts de inicio o servicios adicionales para iniciar.
El archivo rc.local no contiene ninguna información sobre los componentes de arranque del sistema, solo los componentes definidos por superusuario/raíz. Sin embargo, no todos los programas de inicio raíz se describen en rc.local, solo aquellos que no interfieren con los componentes del sistema. Por lo general, rc.local se ejecuta después de que se inician los servicios normales.

Los sistemas Linux más nuevos, incluido Systemd, han reemplazado el script rc.local, pero aún se puede restaurar siendo una solución recomendada. Este tutorial muestra cómo restaurar y usar el script rc.local y usar rc-local de systemd en nuevas distribuciones de Linux.

Habilitación de /etc/rc.local en distribuciones de Linux usando Systemd:

IMPORTANTE: Es importante recordar que /etc/rc.local se eliminó y reemplazó. El método actual para ejecutar scripts al inicio se describe después de las instrucciones para habilitar /etc/rc.local. Este tutorial está destinado a usuarios con necesidades específicas.

Para empezar, crea el /etc/rc.local usando el editor que quieras y sudo (o root):

enano /etc./rc.local

Pegue el siguiente código en el archivo y reemplace con el comando que desea ejecutar en el inicio. No uses sudo. Si no se ejecuta un comando incluido en este script, el servicio que llamará a rc.local (rc-local.service) fallará.

#!/bin/she
#
# RC locales
#
# Este script se ejecuta al final de cada nivel de ejecución multiusuario.
# Asegúrese de que el script "saldrá de 0" en caso de éxito o lo que sea
# valor en caso de error.
#
# Para habilitar o deshabilitar este script, simplemente modifique la ejecución
# un poco.
#
# Por defecto, este script no hace nada.

salida 0

En mi ejemplo, usaré el script rc.local para actualizar la base de datos de vulnerabilidades del análisis de seguridad cada vez que se inicie el sistema. Puede escribir cualquier secuencia de comandos que desee ejecutar primero, excepto las secuencias de comandos de red (como iptables) que pueden interferir con el proceso de inicio normal y tener sus propias secuencias de comandos o directorios de inicio.

Guarda el archivo (CTRL+X Y ) y dale derechos de ejecución ejecutando el siguiente comando:

transpiro chmod +x /etc./rc.local

Crea un archivo /etc/systemd/system/rc-local.serviciocorrer:

enano /etc./sistema/sistema/rc-local.servicio

Pegue los siguientes comandos y salga de la grabación presionando CTRL+X Y .

ExecStart=/etc./iniciar rc.local
tiempo de espera m=0
salida estándar=tty
Permanecer después de salir=Sí
SysVStartPriority=99

[Install]
Búsqueda por=destino.multiusuario

Habilitar rc-local:

transpiro systemctl permitir rc-locale

Ahora puede iniciar rc-local.service, que leerá el archivo /etc/rc.local. Ejecute el siguiente comando:

systemctl inicia rc-local.servicio

Puede verificar si rc-local se cargó correctamente ejecutando lo siguiente:

systemctl estado rc-local.servicio

La forma correcta (Systemd):

El proceso descrito anteriormente es antiguo, está desactualizado y puede provocar que algunos servicios se bloqueen.
Esta sección describe el proceso actual para iniciar scripts o servicios en el momento del arranque para las distribuciones de Linux que usan Systemd.

Systemd es un administrador de servicios que asigna grupos de control de servicios (cgroups) y realiza un seguimiento de los procesos. Systemd es el proceso (PID) 1 responsable de iniciar el sistema.

Para agregar servicios o scripts al inicio, debe crear un archivo unidad del sistema.
Las unidades Systemd incluyen servicios (.Servicio), puntos de montaje (.instalación), dispositivos (.dispositivo) o tomado (.ENCHUFE). A diferencia del proceso anterior descrito anteriormente con rc.local, en lugar de editar el mismo archivo que contiene información de la secuencia de comandos del usuario, debe crear un lector de servicios de Systemd para cada secuencia de comandos que desee ejecutar al inicio.

Las unidades systemd se encuentran en /etc/systemd/sistemay aquí es donde necesitamos crear la unidad systemd para el script que queremos ejecutar al inicio.

La siguiente imagen muestra el contenido del reproductor TeamViewer.servicio.

Dónde está el [Unit] pautas:

  • Descripción = Esta directiva describe la unidad; puede establecer el nombre de la unidad.
  • Requiere = Aquí puede especificar dependencias para evitar errores de inicio.
  • quiere = Al igual que el anterior, mantiene el servicio funcionando aunque no encuentre las dependencias definidas.
  • después = La unidad arrancará después de lo especificado en esta directiva.

Algunas directivas utilizadas en el [Service] La sección se puede compartir con [Unit].

  • Tipo = En el ejemplo anterior, bifurcación indica que el servicio se terminará, conservando los procesos secundarios a los que se les debe asignar un PID.
  • archivo PID = La directiva de bifurcación requiere la directiva PIDFile, que debe contener la ruta al archivo pid del proceso secundario para que Systemd lo identifique.
  • InicioEjecutivo = Aquí especifica la ruta y los comandos que desea ejecutar. Esto es similar al archivo rc.local.
  • reiniciar = Esta directiva le dice a Systemd cuándo reiniciar el reproductor. Las opciones disponibles son por error, por aborto, siempre, por éxito, en control o por anomalía.
  • LímiteIntervaloInicio = Este punto de ajuste indica que la unidad tiene 60 segundos para 10 intentos de reinicio en caso de falla.
  • LímiteInicioRáfaga = Esta directiva especifica el límite de reintentos, en el ejemplo anterior, 10 reintentos en 60 segundos.

El único [Install] la directiva del ejemplo anterior es WantedBy.

  • Buscado por = Aquí puede especificar esta unidad como una dependencia; es similar a la directiva Wants, pero establecer la unidad actual se considera una dependencia de otra unidad.

Notar: Puede consultar todas las directivas de Systemd en
https://www.freedesktop.org/software/systemd/man/systemd.directives.html

Agregar su unidad Systemd:

Para ejecutar un script al inicio, créelo en /etc/systemd/sistema con su nombre seguido de un punto y un servicio, por ejemplo, linuxhint. Servicio. Puede usar nano como en el siguiente ejemplo:

Pegue lo siguiente reemplazandoNombre o descripción del guión> con una descripción de su script y dónde /usr/sbin/linuxhint.sh escribir de la manera correcta.

[Unit]
Descripción= <apellido o descripción del guión>

[Service]
ExecStart=/bote de basura/golpear /usuario/sbin/linuxhint.sh # en esta línea especifica la ruta al script.

[Install]
Búsqueda por=destino.multiusuario

Luego active su nuevo servicio ejecutando:

transpiro systemctl permitir <nombre del guión>

Inicie su servicio y compruebe que funciona correctamente ejecutando:

systemctl iniciar linuxhint
systemctl estado linuxhint

El script está listo para ejecutarse en el inicio.

Conclusión:

Aunque Systemd parece mucho más complicado que el antiguo rc.local, cada servicio o secuencia de comandos es una sola unidad que proporciona más estabilidad al sistema.

Como se mencionó en la primera sección dedicada a rc.local, si un comando en el script no se carga correctamente, podría afectar un archivo de configuración general.

Además, Systemd proporciona herramientas que rc.local no proporciona para manejar múltiples situaciones y especificaciones.

Otras ventajas de Systemd incluyen la simplicidad del control y la gestión de procesos (que no se explica en este tutorial). Systemd también le permite agrupar servicios y contiene resultados de error más detallados.

Espero que hayas encontrado útil este tutorial. Siga las sugerencias de Linux para obtener más consejos y tutoriales de Linux.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir