Para agregar correctamente los servicios y los scripts al inicio en Debian 11, debe crear unidades Systemd. Este tutorial se centra en las unidades SystemD, si está buscando instrucciones rápidas para ejecutar un script en el arranque, salte directamente a la creación de una unidad Systemd para ejecutar un script en la sección de arranque.
¿Qué es una unidad Systemd??
Las unidades Systemd son archivos de configuración que contienen información para la administración o ejecución adecuadas de ciertos archivos del sistema. Las unidades SYSTEMD se pueden utilizar para administrar servicios, sockets, dispositivos, puntos de montaje, puntos automáticos, intercambios de archivos o particiones, un objetivo de inicio, una ruta del sistema de archivos observado, temporizadores controlados y supervisados por Systemd, un porta de administración de recursos o un grupo de procesos creados externamente.
Las unidades Systemd se encuentran en el directorio /etc/systemd/sistema. Cualquier script que desee ejecutar en Boot usando unidades SystemD debe especificarse en un archivo (unidad) en este directorio.
Una vista rápida que usa el comando LS nos mostrará las unidades SystemD existentes en nuestro sistema.
ls/etc/systemd/sistema
Uno de los archivos que no se incluyeron en la captura de pantalla anterior es gato.servicio cuyo contenido parece la siguiente imagen.
Nota: La siguiente información es para que se familiarice con los archivos de configuración de la unidad. No se preocupe, la unidad que creará para ejecutar su script será más simple.
Donde las directivas [Unidad]:
Descripción: Esta directiva le permite agregar una descripción para una unidad, aquí puede establecer el nombre de la unidad para que se identifique.
Quiere: Aquí, puede especificar las dependencias de la unidad. Tenga en cuenta que hay diferentes directivas para este propósito similar. Por ejemplo, la directiva Requerimiento se usa para especificar dependencias estrictas, sin las cuales la unidad no puede funcionar. Contrariamente a las necesidades, los deseos se usan para especificar dependencias sin las cuales la unidad puede seguir funcionando.
Después: La unidad actual comenzará después de la unidad especificada en esta directiva.
[Servicio] Directivas de la sección:
Tipo: En el ejemplo anterior, el bifurcado indica que el servicio se matará mientras mantiene los procesos infantiles que deben asignarse un PID.
Ambiente: Aquí, puede especificar las variables de entorno de la unidad.
Exectard: Esta directiva le permite especificar la ruta y los comandos que desea ejecutar.
Execstop: puede especificar el comando utilizado para detener la unidad.
SuccessExitstatus: Esta directiva le permite especificar el estado de salida y las señales.
Usuario: puede especificar al propietario del usuario de la unidad.
Grupo: puede especificar el propietario del grupo de la unidad.
Umask: puede especificar la máscara de usuario.
Reinicio: Si la unidad se reinicia automáticamente, aquí puede especificar el tiempo para esperar para volver a intentar el reinicio del servicio.
Reanudar: puede definir para Systemd cuando se debe reiniciar la unidad. Las opciones disponibles son siempre, en fallas, abortes, exitosas, en vigor y abnormal.
La directiva [Instalar] en el ejemplo anterior es Wantedby.
Buscado por: Esta directiva le permite definir la unidad como dependencia; es similar al Quiere directiva, pero para especificar si la unidad actual es considerada una dependencia por otra unidad.
Otras directivas comunes en la sección [Unidad] que no se incluyeron en la captura de pantalla anterior:
Requerimiento: En esta directiva, puede especificar dependencias para evitar fallas de arranque. Contrario al Quiere Directiva, si no se cumple una dependencia especificada con la Directiva, la unidad no funcionará.
En la sección [Servicio]:
Pidfile: La Directiva de bifurcación requiere la Directiva PIDFile, que contiene la ruta al archivo PID del proceso infantil para Systemd para identificarlo.
StartLimitInterval: indica que la unidad tiene 60 segundos para 10 intentos de reiniciar sobre la falla.
Startlimitburst: Esta directiva indica el límite de intentos, en el ejemplo anterior, 10 intentos en 60 segundos.
Para obtener información adicional sobre las unidades Systemd, puede leer:
https: // manual.debian.org/Jessie/Systemd/Systemd.unidad.5.interno.html.
Creación de una unidad Systemd para ejecutar un script en Boot en Debian 11
Ejecutar un script en el arranque puede ser más simple y contener menos configuración que la gato.servicio Archivo utilizado anteriormente para mostrar el contenido común de la unidad.
Como se dijo anteriormente, los archivos (unidades) que contienen la información en los scripts que se ejecutan en el arranque se encuentran en el directorio /etc/systemd/sistema. Para definir un script para ejecutarse en el arranque, debe crear una nueva unidad para este script. Para crear una unidad debajo /etc/systemd/sistema, Puede usar nano como se muestra en el siguiente ejemplo, en el que creo una unidad llamada guion.servicio, Puede nombrarlo como considera conveniente para identificar su script.
sudo nano/etc/systemd/system/script.servicio
El contenido de la unidad para su script será más simple que el gato.servicio utilizado como ejemplo anteriormente.
Copie y pegue el siguiente código en el archivo en el que creó /etc/systemd/sistema.
Nota: Reemplazar con tu nombre de guión y con el camino a tu script.
[Unidad]
Descripción = el nombre de su script aquí
Después = predeterminado.objetivo
[Servicio]
Execstart =/path/to/script.mierda
[Instalar]
Wantedby = predeterminado.objetivo
Después de copiar el contenido en el archivo en /etc/systemd/system/, Debe habilitarlo utilizando el comando SystemCTL como se muestra a continuación. Reemplazar con el nombre correcto que asignó a la unidad.
Ahora tu guión está listo para ejecutar al inicio en Debian 11.
Conclusión
Como puede ver, ejecutar scripts en Boot en Debian 11 usando Systemd es bastante simple. Cualquier nivel de usuario de Linux puede realizar esta tarea simplemente creando un archivo simple dentro del directorio de unidades. Por supuesto, Linux ofrece métodos adicionales para ejecutar scripts en el arranque que no se describieron en este tutorial, como Cron. Cualquier usuario de Linux debe saber cómo localizar las unidades Systemd para ejecutar los servicios o los scripts requeridos al inicio. Tanto las unidades Systemd como el cron son métodos aceptados, mientras que RC.local o init.D Los guiones son obsoletos.
Gracias por leer este tutorial explicando cómo ejecutar scripts en el arranque usando Systemd en Debian 11. Sigue siguiéndonos para obtener consejos y tutoriales adicionales de Linux.