Cómo crear un servicio Systemd en Linux

- 4883
- 1263
- Sra. Lorena Sedillo
System es un conjunto de software moderno que proporciona muchos componentes en un sistema de Linux que incluye un sistema y un administrador de servicios. Es compatible con Sysv y LSB Init scripts y funciona como reemplazo para sysvinit.
Un servicio Systemd se define en un archivo de unidad (una unidad es una representación de un servicio y recursos del sistema, como dispositivos, enchufes, puntos de montaje, etc.). Los archivos de la unidad de servicio personalizado deben almacenarse en el /etc/systemd/system/ directorio y debe tener un .servicio
extensión. Por ejemplo, una costumbre aplicación Usos de servicio /etc/systemd/system/test-app.servicio archivo de la unidad.
[También puede que le guste: por qué 'init' necesitaba ser reemplazado con 'Systemd' en Linux]
Un archivo unitario es un archivo de estilo INI de texto sin formato que generalmente incluye tres secciones comunes. La primera sección suele ser la Unidad Sección que lleva información genérica sobre la unidad que no depende del tipo de unidad.
La siguiente sección es la sección de tipo de unidad, para un servicio, es un Servicio sección. Y la sección final es la Instalar Sección que lleva información de instalación para la unidad.
En esta guía, mostraremos cómo crear un nuevo system Servicio y administrar el servicio utilizando el comando SystemCTL, en Linux.
Creación de un archivo de servicio Systemd personalizado en Linux
Para ejecutar una aplicación, programa o script como servicio en Systemd, puede crear un nuevo servicio Systemd de la siguiente manera. Comience por crear el servicio unidad Archivo nombrado aplicación.servicio (Recuerda reemplazar aplicación con el nombre real de su servicio o aplicación), debajo /etc/systemd/system/:
# vi/etc/systemd/system/test-app.servicio
La siguiente configuración se utiliza para definir un servicio para ejecutar un Matraz aplicación utilizando Pistolero, un servidor Python WSGI HTTP para UNIX.
[Unidad] Descripción = Gunicorn Daemon para servir la aplicación de prueba después = red.Target [Service] User = Root Group = Root WorkingDirectory =/Apps/Test-App/Environment = "Path =/Apps/Test-App/bin" Execstart =/Apps/Test-App/bin/Gunicorn --Workers 9- t 0 -unir 127.0.0.1: 5001 -M 007 WSGI: aplicación-Debug a nivel de log --Ccess-Logfile/var/log/gunicorn/test_app_access.LOG --Error-LogFile/Var/Log/Gunicorn/Test_App_error.LOG EXECRELOAD =/bin/kill -s hup $ mainpid reinSartSec = 5 [install] WantedBy = Multi -user.objetivo
Describamos brevemente cada directiva de configuración en la configuración anterior:
- Descripción - se utiliza para especificar una descripción para el servicio.
- Después - Define una relación con una segunda unidad, el red.objetivo. En este caso, el aplicación.servicio se activa después del red.objetivo unidad.
- Usuario - se utiliza para especificar al usuario con cuyos permisos se ejecutará el servicio.
- Grupo - se utiliza para especificar el grupo con cuyos permisos se ejecutará el servicio.
- Directorio de trabajo - se utiliza para establecer el directorio de trabajo para procesos ejecutados.
- Ambiente - se utiliza para establecer variables de entorno para procesos ejecutados.
- Exectard - se usa para definir los comandos con sus argumentos que se ejecutan cuando se inicia este servicio.
- Execreload - se usa para definir los comandos para ejecutar para activar una configuración de recarga en el servicio.
- Buscado por - habilita que se cree un enlace simbólico en el
.quiere/
o.requiere/
directorio de cada una de las unidades enumeradas, multi usuario.objetivo En este caso, cuando el aplicación.servicio la unidad está habilitada utilizando el Comando de habilitar SystemCTL.
Puede encontrar todos los parámetros de configuración de la unidad de servicio, bien descritos en la documentación de configuración de la unidad de servicio.
Guardar el archivo de la unidad y cerrarlo. Luego recargar Systemd con este nuevo archivo de la unidad de servicio ejecutando:
# comando SystemCTL Daemon-Relar
Recuerde siempre ejecutar este comando después de editar un archivo de unidad.
Administrar el servicio Systemd en Linux
Para iniciar/activar el servicio, ejecute el comando SystemCTL de la siguiente manera:
# SystemCTL Start Test-App.servicio
Para verificar si el servicio se está ejecutando o no, emita el comando SystemCTL como se muestra.
# SystemCTL Status Test-App.servicio

Para habilitar el servicio para comenzar en el arranque del sistema, use el SystemCTL habilitar dominio. Puede verificar si el servicio ha sido habilitado utilizando el SystemCTL ISable Comando de la siguiente manera:
# SystemCTL Habilitar la aplicación de prueba.Servicio # SystemCTL APP de prueba habilitado.servicio

Alternativamente, también puede habilitar e iniciar el servicio al mismo tiempo que se muestra.
# SystemCTL Habilitar-Ahora Test-App.servicio
Para detener/desactivar el servicio, ejecute el SystemCtl Stop Comando de la siguiente manera:
# SystemCTL Stop Test-App.servicio
Para reiniciar el servicio, ejecute el SystemCTL reiniciar Comando de la siguiente manera:
# SystemCTL reiniciar la aplicación de prueba.servicio
También puede deshabilitar un servicio para evitar que comience en el arranque del sistema, utilizando el Systemctl deshabilitar dominio. Puede verificar si el servicio ha sido habilitado utilizando el SystemCTL ISable Comando de la siguiente manera:
# SystemCTL Desactivar la aplicación de prueba.Servicio # SystemCTL IS-DISABLET-APP-APP.servicio
Alternativamente, puede deshabilitarlo y detenerlo al mismo tiempo que se muestra.
# SystemCTL DISPLAY-Ahora Test-App.servicio
Para obtener más detalles sobre la gestión de servicios Systemd y otros recursos, ejecute:
# Man SystemCTL
- « Cohete.Chat - Gratis, código abierto, chat de equipo empresarial para Linux
- Cómo instalar Firefox en Rhel y Debian Systems »