SDB:Systemd service

Saltar a: navegaci贸n, buscar
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
Icon-manual.png Icon-ayuda.png

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].

  1. 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.
  2. 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.
  3. Type=dbus: El servicio se considera listo cuando el BusName especificado que aparece en el sistema bus es DBus.
  4. 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.
  5. 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.

Ver tambi茅n