Blog del Podcast
podcast      GitHub      Twitter   Telegram

Crear servicio con Systemd

Lectura: 3 min. 421 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 el domingo, 15 de enero de 2023






Powered by wdblog

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