SDB:Systemd service
Systemd 路 Uso b谩sico 路 Configuraci贸n 路 Personalizar unidades 路 Objetivos 路 Servicios 路 Temporizadores 路 Instant谩neas 路 Diario 路 Optimizaci贸n 路 Ficheros temporales 路 Equivalencia entre systemd y sysvinit
Un fichero de configuraci贸n de unidad cuyo nombre acaba en .service codifica informaci贸n sobre un proceso controlado y supervisado por systemd.
Art铆culos recomendados | Art铆culos relacionados | ||
Contenido
Manejo general
Las operaciones m谩s habituales con estas unidades son:
- Puesta en marcha, parada y reinicio
- inicio:
systemctl start <nombre_de_unidad>
- parada:
systemctl stop <nombre_de_unidad>
- reinicio:
systemctl restart <nombre_de_unidad>
- Habilitar para su ejecuci贸n en el arranque del sistema o deshabilitar su ejecuci贸n en el arranque del sistema:
- habilitar en el arranque:
systemctl enable <nombre_de_unidad>
- deshabilitar del arranque:
systemctl disable <nombre_de_unidad>
- Consulta de informaci贸n sobre el estado de ejecuci贸n y habilitaci贸n del servicio:
systemctl status <nombre_de_unidad>
Tambi茅n es posible habilitar un servicio en el arranque y a la vez ponerlo en marcha a帽adiendo el modificador --now al comando de habilitaci贸n:
systemctl enable --now <nombre_de_unidad>
Edici贸n de unidades de servicio
Para editar una unidad de tipo servicio se utilizan los mismos comandos que para otros tipos de unidad.
systemctl edit <nombre_de_unidad>.service
Para crear una unidad se a帽ade el modificador --force al comando anterior:
systemctl edit --force <nombre_de_unidad>.service
Estructura de la unidad
Las unidades para servicios usar谩n casi siempre tres bloques: Unit, Install y Service.
[Unit] Description=fichero de ejemplo de unidad servicio de systemd. [Service] Type=oneshot ExecStart=/bin/bash /usr/sbin/ejemplo.sh [Install] WantedBy=multi-user.target
El ejemplo anterior ejecuta el comando /usr/sbin/ejemplo.sh
Tipo de servicio
Existen diferentes tipos de servicio a tener en cuenta cuando se escribe un archivo de servicio personalizado. Esto se configura mediante el par谩metro Type= en la secci贸n [Service].
- Type=simple: systemd considera que el servicio debe iniciarse inmediatamente. El proceso no debe romperse. No utilice este tipo si otros servicios tienen que ser llamados por ese servicio, a menos que no sea activado por el socket.
- Type=notify: Igual que Type=simple, pero con la condici贸n de que el demonio va a enviar una se帽al a systemd cuando est茅 listo. Esto requiere del c贸digo espec铆fico proporcionado por libsystemd-daemon.so.
- Type=dbus: El servicio se considera listo cuando el BusName especificado que aparece en el sistema bus es DBus.
- Type=forking: systemd considera que el servicio debe ser iniciado antes que el proceso se rompa y el antecesor se haya terminado. Para los demonios cl谩sicos sol铆a ser necesario usar este tipo, pero ahora se desaconseja para utilizar notify, notify-reload, o dbus en su lugar. Debe especificar tambi茅n PIDFile= para que systemd puede realizar un seguimiento del proceso principal.
- Type=oneshot: Esto es 煤til para los scripts que hacen un solo trabajo y luego concluyen. Es posible que desee tambi茅n establecer RemainAfterExit= de modo que systemd sigue considerando el servicio como activo despu茅s de que el proceso haya terminado.