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.
Nos situaremos en este directorio donde están todos los servicios y crearemos la plantilla del nuevo servicio.
Al servicio lo llamaré uso-memoria. Es conveniente que la extensión del archivo sea .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.
Habilitamos el servicio. Después de ejecutar este comando, cada vez que iniciemos nuestro PC el servicio se iniciará automáticamente.
Iniciar el servicio
Ver el estado del servicio, si está corriendo o no.
Detener el servicio
Comprobar si el servicio estará habilitado para el próximo arranque
Deshabilitar el servicio
Borrar el servicio
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
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional.