Este artículo describe cómo administrar servicios mediante systemd .
Introducción
Muchos sistemas operativos Linux® modernos disponibles en Rackspace, como Centos® 7 y versiones posteriores y Ubuntu® 16.04, adoptaron systemd como administrador del sistema. Por lo tanto, es posible que desee conocer los entresijos de cómo usarlo para administrar sus aplicaciones.
Usar systemctl
Cuando usas systemd para administrar aplicaciones, usa el comando systemctl
. Las siguientes secciones describen varias de las funciones de este comando.
Iniciar y detener servicios
Use el comando systemctl start application.service
para iniciar la aplicación y el comando systemctl stop application.service
para detener la aplicación. Si no sabe si un servicio se está ejecutando, puede usar el comando systemctl status application.service
para verificar el estado, como se muestra en el siguiente ejemplo:
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: man:httpd(8)
man:apachectl(8)
[root@localhost ~]# systemctl start httpd.service
[root@localhost ~]# systemctl status httpd.service
httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
Active: active (running) since Sun 2020-05-24 01:30:02 UTC; 1s ago
Docs: man:httpd(8)
man:apachectl(8)
Main PID: 16117 (httpd)
Status: "Processing requests..."
CGroup: /system.slice/httpd.service
├─16117 /usr/sbin/httpd -DFOREGROUND
├─16118 /usr/sbin/httpd -DFOREGROUND
├─16119 /usr/sbin/httpd -DFOREGROUND
├─16120 /usr/sbin/httpd -DFOREGROUND
├─16121 /usr/sbin/httpd -DFOREGROUND
└─16122 /usr/sbin/httpd -DFOREGROUND
May 24 01:30:02 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 24 01:30:02 localhost.localdomain httpd[16117]: AH00558: httpd: Could not reliably determine
the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName'
directive globally to suppress this message
May 24 01:30:02 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
[root@localhost ~]#
Reiniciar o recargar servicios
Reiniciar y recargar un servicio son dos cosas separadas con systemd .
Cuando ejecuta el comando systemctl restart application.service
, el servicio especificado se reinicia. Si el servicio está detenido, se inicia.
Cuando ejecuta el comando systemctl reload application.service
, la configuración del servicio especificado se recarga. Por ejemplo, si realiza algún cambio en un host virtual de Apache® (vhost) y desea que esos cambios se activen sin detener Apache, vuelva a cargar el servicio. Las nuevas configuraciones se realizan sin interrumpir el servicio.
Habilitar y deshabilitar servicios
Si desea que un servicio específico se inicie cuando se inicia el servidor, ejecute el comando systemctl enable application.service
. Si desea asegurarse de que un servicio no se inicie cuando se inicia el servidor, ejecute el comando systemctl disable application.service
.