LinuxParty
Systemd es un paquete de software moderno que proporciona muchos componentes en un sistema Linux , incluido un administrador de sistema y servicio. Es compatible con los scripts de inicio SysV y LSB y funciona como reemplazo de sysvinit .
Un servicio systemd se define en un archivo de unidad (una unidad (unit) es una representación de un servicio y recursos del sistema, como dispositivos, sockets, puntos de montaje, etc.). Los archivos de la unidad de servicio personalizada deben almacenarse en el directorio /etc/systemd/system/ y deben tener una extensión ".service"
. Por ejemplo, un servicio de aplicación de prueba personalizado utiliza el archivo de unidad /etc/systemd/system/test-app.service.
Un archivo de unidad es un archivo de estilo ini de texto sin formato que generalmente incluye tres secciones comunes. La primera sección suele ser la sección Unit, que contiene 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 una sección de Servicio. Y la sección final es la sección de instalación que contiene información de instalación para la unidad.
En esta guía, mostraremos cómo crear un nuevo servicio systemd y administrar el servicio usando el comando systemctl , en Linux.
Crear un archivo de servicio Systemd personalizado en Linux
Para ejecutar una aplicación, un programa o una secuencia de comandos como un servicio en systemd, puede crear un nuevo servicio de systemd de la siguiente manera. Comience creando el archivo de la unidad de servicio llamado test-app.service (recuerde reemplazar test-app con el nombre real de su servicio o aplicación), en /etc/systemd/system/ :
# vi /etc/systemd/system/test-app.service
La siguiente configuración se usa para definir un servicio para ejecutar una aplicación Flask usando Gunicorn, un servidor HTTP WSGI de Python para UNIX.
[Unit] Description=Gunicorn daemon for serving test-app After=network.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 --bind 127.0.0.1:5001 -m 007 wsgi:app --log-level debug --access-logfile /var/log/gunicorn/test_app_access.log --error-logfile /var/log/gunicorn/test_app_error.log ExecReload=/bin/kill -s HUP $MAINPID RestartSec=5 [Install] WantedBy=multi-user.target
Describamos brevemente cada directiva de configuración en la configuración anterior:
- Description : se utiliza para especificar una descripción para el servicio.
- After : define una relación con una segunda unidad, la network.target. En este caso, el servicio test-app.service se activa después de la unidad network.target .
- User : se utiliza para especificar el usuario con cuyos permisos se ejecutará el servicio.
- Group : se utiliza para especificar el grupo con cuyos permisos se ejecutará el servicio.
- WorkingDirectory : se utiliza para establecer el directorio de trabajo para los procesos ejecutados.
- Environment : se utiliza para establecer variables de entorno para los procesos ejecutados.
- ExecStart : se utiliza para definir los comandos con sus argumentos que se ejecutan cuando se inicia este servicio.
- ExecReload : se utiliza para definir los comandos que se ejecutarán para activar una recarga de configuración en el servicio.
- WantedBy : permite que se cree un enlace simbólico en el directorio
.wants/
o.requires/
de cada una de las unidades enumeradas, multi-user.target en este caso, cuando la unidad test-app.service está habilitada mediante el comando systemctl enable .
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 .
Guarde el archivo de la unidad y ciérrelo. Luego, vuelva a cargar systemd con este nuevo archivo de unidad de servicio ejecutando:
# systemctl daemon-reload comando
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 prueba-aplicación.service
Para verificar si el servicio se está ejecutando o no, emita el comando systemctl como se muestra.
# systemctl status prueba-aplicación.service
Consultar el Estado del Servicio
Para permitir que el servicio se inicie en el arranque del sistema, use el comando systemctl enable . Puede verificar si el servicio se ha habilitado usando el comando systemctl is-enable de la siguiente manera:
Permitir que el servicio se inicie en el arranque# systemctl enable test-app.service # systemctl is-enabled test-app.service
Alternativamente, también puede habilitar e iniciar el servicio al mismo tiempo como se muestra.
# systemctl enable --now test-app.service
Para detener/desactivar el servicio, ejecute el comando systemctl stop de la siguiente manera:
# systemctl stop test-app.service
Para reiniciar el servicio, ejecute el comando systemctl restart de la siguiente manera:
# systemctl restart test-app.service
También puede deshabilitar un servicio para evitar que se inicie al arrancar el sistema, usando el comando systemctl disabled . Puede verificar si el servicio se ha habilitado usando el comando systemctl is-enable de la siguiente manera:
# systemctl disable test-app.service # systemctl is-disabled test-app.service
Alternativamente, puede deshabilitarlo y detenerlo al mismo tiempo como se muestra.
# systemctl disable --now test-app.service
Para obtener más detalles sobre cómo administrar los servicios de systemd y otros recursos, ejecute:
# man systemctl
-
Software
- Joomla 6, ¿Qué hay para ti?
- Suiza ahora exige que todo el software gubernamental sea de código abierto
- ¿Qué significa la IA de código abierto, de todos modos?
- La importancia de los diseñadores para conseguir un photocall personalizado impactante
- Disponible ONLYOFFICE Docs 8.0: formularios PDF, RTL, Buscar, asistente de gráficos, plugins actualizada y más
- 14 mejores sistemas operativos para Internet de las cosas (IoT)
- Cómo instalar Odoo 15 en CentOS 8 y 9 / AlmaLinux 8 y 9
- RustDesk la alternativa a TeamViewer y AnyDesk para Windows, Linux y Mac
- Rustdesk [Escritorio remoto]: una alternativa de TeamViewer y AnyDesk para Linux
- ONLYOFFICE lanza la versión 7.4 de su suite ofimática, con nuevas funciones y mejoras en la experiencia del usuario
- Cómo crear un servicio Systemd en Linux
- Los programas no libres son una amenaza para la libertad de todos - Richard Stallman
- Cómo crear formularios rellenables con roles de usuario en ONLYOFFICE Docs
- Alternativas a gratuitas a Adobe Photoshop, InDesign e Illustrator
- Convertir Aplicaciones Web en Apps de Escritorio con WebCatalog