Blog del Podcast
podcast      GitHub      Twitter   Telegram

Crear servicio con Systemd

Tiempo estimado de lectura: 4 minutos. 504 palabras. systemd

El script que va a estar corriendo en segundo plano para controlar el consumo de RAM de mi PC, necesito iniciarlo y detenerlo a determinadas horas.

Iniciar el script no es problema con cron, el problema es cuando hay que detenerlo.

Una buena solución para gestionar tus scripts es crear un servicio con systemd.

Voy a explicar paso a paso cómo crear un servicio.

Creando servicio

Nos situaremos en este directorio donde están todos los servicios y crearemos la plantilla del nuevo servicio.

cd /etc/systemd/system/

Al servicio lo llamaré uso-memoria. Es conveniente que la extensión del archivo sea .service

sudo nano /etc/systemd/system/uso-memoria.service

Este es el ejemplo plantilla que utilizaremos para crear el servicio.

En este caso, el usuario que ejecutará el servicio es el usuario angel.

Si el usuario fuera el root, aquí tendría que haber puesto root.

[Unit]
Description=Control del uso de la memoria
After=network.target

[Service]
User=angel
ExecStart=/scripts/uso-memoria/uso-memoria

[Install]
WantedBy=multi-user.target

Le daremos todos los privilegios.

sudo chmod 777 /etc/systemd/system/uso-memoria.service

Habilitamos el servicio. Después de ejecutar este comando, cada vez que iniciemos nuestro PC el servicio se iniciará automáticamente.

sudo systemctl enable uso-memoria.service

Iniciar el servicio

sudo systemctl start uso-memoria.service

Ver el estado del servicio, si está corriendo o no.

sudo systemctl status uso-memoria.service

Detener el servicio

sudo systemctl stop uso-memoria.service

Comprobar si el servicio estará habilitado para el próximo arranque

sudo systemctl is-enabled uso-memoria.service

Deshabilitar el servicio

sudo systemctl disable uso-memoria.service

Borrar el servicio

sudo rm /etc/systemd/system/uso-memoria.service

Resumen de opciones

Init Systemd Description
service name start systemctl start name.service Inicia un servicio
service name stop systemctl stop name.service Detiene un servicio
service name restart systemctl restart name.service Reinicia un servicio
service name condrestart systemctl try-restart name.service Reinicia un servicio solo si está en funcionamiento
service name reload systemctl reload name.service Recarga la configuración de un servcio
service name status systemctl status name.service systemctl is-active name.service Comprueba si un servicio está funcionando.
service –status-all systemctl list-units type service all Muestra el estado de todos los servicios.
chkconfig name on systemctl enable name.service Habilita un servicio
chkconfig name off systemctl disable name.service Deshabilita un servicio
chkconfig –list name systemctl status name.service systemctl is-enabled name.service Comprueba si un servición está habilitado
chkconfig –list systemctl list-unit-files –type service Lista todos los servicios y comprueba si están habilitados
chkconfig –list systemctl list-dependencies –after Lista los servicios que tienen que iniciarse antes de una unidad
chkconfig –list systemctl list-dependencies –before Lista los servicios que tienen que iniciarse después de una unidad

Fuente: Gestionar servicios en Systemd - Atareao


Publicado por Angel el Sunday 15 January del 2023



También te puede interesar:




Powered by org-bash-blog

Written in OrgMode with Emacs and converted to HTML with Pandoc

Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.