Cómo crear un archivo de servicio en Linux

Como Crear Un Archivo De Servicio En Linux



El sistema de inicio systemd ahora forma parte de casi todas las distribuciones de Linux. Como administrador o desarrollador, usted crea servicios que systemd puede administrar. Por ejemplo, si desea iniciar servicios al arrancar o desea controlarlos manualmente, puede hacerlo a través de un archivo de servicio personalizado.

En este tutorial, explicaré cómo crear un archivo de servicio systemd en Linux.







¿Qué es un archivo de servicio?

Antes de continuar, comprendamos qué es un archivo de servicio systemd y cómo se crea en Linux.



Un archivo de servicio systemd contiene instrucciones configuradas para que systemd administre el servicio. Normalmente contiene tres secciones:



  • Unidad
  • Servicio
  • Instalar

El Unidad La sección contiene información básica sobre el servicio, como una breve descripción, páginas de documentación y una ruta a las dependencias. El Instalar La sección es opcional, pero normalmente administra en qué estado del sistema se debe habilitar el servicio.





El Servicio La sección normalmente está intercalada entre la sección Unidad y Instalación. Contiene principalmente el tipo de servicio y la ruta de los ejecutables que esencialmente son comandos para ejecutar al invocar el servicio por parte de systemd.

Así es como se ve una estructura de archivo de servicio típica.



[ Unidad ]

Directiva1 = instrucción

Directiva2 = instrucción



[ Servicio ]

Directiva1 = instrucción

Directiva2 = instrucción



[ Instalar ]

Directiva1 = instrucción

Directiva2 = instrucción

Aquí, las directivas son parámetros que toman sus respectivas entradas. Por ejemplo, el Descripción La directiva toma una cadena del nombre del servicio. De forma similar, Inicio ejecutivo tiene en cuenta la ruta completa del ejecutable.

Un archivo de servicio típico de servicio ssh se da a continuación.

Cómo crear un archivo de servicio

Para crear un servicio systemd, es necesario comprender las directivas clave. En esta guía, cubriré las directivas esenciales que pueden ayudarle a crear un archivo de servicio completamente funcional.

La creación de un archivo de servicio implica varios pasos; comencemos por crear el archivo de script.

Nota: Para continuar con el método que se menciona a continuación, debe tener privilegios de root.

1. Creando un guión

El paso inicial implica la creación del código que se ejecutará cuando el servicio comience a funcionar. Para este tutorial, estoy creando un script bash que almacenará el tiempo de actividad del sistema Linux y el uso de la memoria.

Creemos un script en el directorio actual con el nombre de myscript.sh usando nanoeditor.

sudo nano myscript.sh

Ahora, agregue el script que se proporciona a continuación en el archivo y guárdelo presionando control+x y luego y .

#!/bin/bash

eco '>>Aquí está el tiempo de actividad de su sistema<<' > hogar / él mismo / miarchivo.txt

tiempo de actividad >> hogar / él mismo / miarchivo.txt

eco '>>Aquí está el uso de memoria de su sistema<<' >> / hogar / él mismo / miarchivo.txt

gratis -metro >> hogar / él mismo / miarchivo.txt

dormir 60

El script contiene un par de cadenas de eco y tiempo de actividad y gratis comandos.

El tiempo de actividad El comando en Linux se utiliza para imprimir cuánto tiempo ha estado funcionando un sistema y cuántos usuarios están conectados con una carga promedio del sistema de los últimos 1, 5 y 15 minutos.

El gratis El comando se utiliza para imprimir el uso de memoria del sistema, mientras que el -metro La bandera se utiliza para imprimir la salida en MB .

Para guardar información en un archivo de texto, utilizamos operadores especiales llamados operadores de redirección. El > El operador se utiliza para insertar texto en el archivo de texto mencionado. Sin embargo, si el archivo aún no existe, se creará. Mientras que la >> El operador se utiliza para agregar el texto en el archivo. El dormir El comando se utiliza para mantener la actividad del servicio durante una duración mínima de un minuto.

Ahora, haga que el script sea ejecutable otorgando los permisos necesarios.

sudo chmod +x miscript.sh

El script ahora tiene permiso de ejecución, pasemos a la siguiente sección.

Nota: Para que el archivo de servicio esté libre de errores, utilice la ruta absoluta del archivo en el script bash.

2. Creando un archivo .service

A continuación, cree un archivo de servicio con el .servicio extensión. El archivo de servicio debe crearse en el /etc/systemd/sistema directorio. Primero, navegue a este directorio usando el cd dominio.

cd / etc. / sistemad / sistema

Sin embargo, puede crear el archivo de servicio en cualquier directorio y luego mover ese archivo a este directorio.

Estoy creando un archivo de servicio con miservicio.servicio nombre.

sudo nano miservicio.servicio

Ahora, agregue las siguientes líneas al archivo.

[ Unidad ]

Descripción =Mi servicio

[ Servicio ]

Tipo =sencillo

Inicio ejecutivo = / papelera / intento / hogar / él mismo / script.sh

Reanudar = en caso de falla

[ Instalar ]

Buscado por =multiusuario.objetivo

Tenga en cuenta que [Unidad], [Servicio], y [Instalar] son distingue mayúsculas y minúsculas . El archivo de servicio no funcionará si alguno de ellos se menciona incorrectamente, como [UNIDAD] o [SERVICIO].

El nombre del servicio se especifica como mi servicio en el Descripción directiva de la [Unidad] sección.

El Tipo del servicio es simple en el [Servicio] sección, que es el tipo predeterminado. bifurcando , un trago , notificar , dbus e inactivo son algunos de los otros tipos.

Si desea que el servicio sea específico para el usuario, entonces el Usuario La directiva también se puede utilizar con el nombre de usuario del usuario. El uso de esta directiva hará que el permiso del usuario del servicio dependa.

Mientras que la Inicio ejecutivo La directiva contiene la ruta completa del ejecutable. En el ejemplo anterior, el archivo de script myscript.sh se almacena en el /casa/sam/ directorio. De hecho, esta directiva gestiona qué ejecutar cuando systemd invoca un servicio. Si no se especifica la ruta completa del comando, se resolverá automáticamente para corregir rutas absolutas como /usr/local/bin , /usr/bin/, y /papelera . Está perfectamente bien usar el nombre del ejecutable siempre que esté en los directorios de comandos estándar; de lo contrario, mencione la ruta absoluta. Tenga en cuenta que también se pueden utilizar varios comandos separados por punto y coma (;).

El [Instalar] la sección es opcional; sin embargo, indica cómo se habilita el servicio. El Buscado por La directiva toma los archivos de destino de nivel de ejecución como parámetros. Varios archivos de destino indicaron diferentes niveles de ejecución del sistema, como apagado , rescate , multi usuario , gráfico , y reiniciar .

El multi-user.target significa que el servicio se habilitará cuando el sistema esté en un estado que permita sesiones no gráficas de múltiples usuarios.

3. Activando el Servicio

Para activar el servicio, primero, vuelva a cargar las configuraciones del sistema usando sistemactl utilidad.

sudo recarga-demonio systemctl

A continuación, active el servicio nuevamente usando sistemactl comando con permitir .

sudo sistemactl permitir miservicio.servicio

Para verificar, verifique el estado del servicio usando el estado del sistema dominio.

El servicio se está ejecutando correctamente.

Ahora, leamos el archivo de texto. miarchivo.txt el servicio creado en el /hogar directorio.

Cómo crear un archivo de servicio Systemd para un usuario normal

El procedimiento de creación del archivo de servicio para un usuario normal es similar al método de creación de un archivo de servicio por parte del administrador. Sin embargo, el directorio para guardar el archivo de servicio para los usuarios normales es diferente. Los usuarios normales deben colocar sus archivos de servicio en el ~/.config/systemd/usuario . Este directorio debe crearse utilizando el mkdir dominio.

mkdir ~ / .config / sistemad / usuario

Para activar el servicio por parte de un usuario normal -usuario El comando se inserta con sistemactl en lugar de sudo .

sistemactl --usuario recarga-demonio

sistemactl --usuario permitir NOMBRE-SERVICIO.servicio

sistemactl --usuario estado NOMBRE-SERVICIO.servicio

El -usuario La opción se utiliza para administrar los archivos de servicio systemd del usuario.

Cómo eliminar el archivo de servicio

Para eliminar el archivo de servicio, en primer lugar, es necesario detener el servicio.

sudo systemctl stop NOMBRE-SERVICIO.servicio

Verifique el estado usando estado del sistema comando para saber si el servicio está detenido o no. Luego elimine el archivo de servicio usando el habitación dominio.

sudo habitación / etc. / sistemad / sistema / NOMBRE-SERVICIO.servicio

Ahora, recarga el sistemad configuración.

sudo recarga-demonio systemctl

Conclusión

El servicio systemd personalizado resulta ventajoso en varios escenarios. En esta guía, aprendimos cómo crear un archivo de servicio systemd personalizado para un administrador del sistema y cómo los usuarios normales pueden crear un archivo de servicio. Además, también vemos el procedimiento de eliminación del archivo de servicio.