Muchas distros Linux han abandonado el systema de guiones de arranque en favor a systemd. Esto ha creado mucho revuelo entre los usuarios, acostumbrados unos y por convicción otros a los guiones de arranque.
No voy a pararme a explicar los pros y contras de cada uno, si no que voy a explicar brevemente como crear, iniciar y parar servicios bajo Systemd mediante el comando systemctl.
En este ejemplo voy a crear y a poner en funcionamiento a dnscrypt que acabo de instalar.
CREAR SERVICIO
Para crear un servicio nuevo usaremos el parámetro «enable»:
# systemctl enable dnscrypt-proxy.socket
Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.
Como vemos ya se ha creado el servicio en /usr/lib/systemd y cada vez que arranquemos el sistema se iniciará el servicio automáticamente.
INICIAR EL SERVICIO
Como ya hemos creado el servicio vamos a iniciarlo:
# systemctl start dnscrypt-proxy.socket
COMPROBAR EL SERVICIO
Ahora voy a comprobar si el servicio recién creado está funcionando:
# systemctl status dnscrypt-proxy.service
● dnscrypt-proxy.service - DNSCrypt client proxy
Loaded: loaded (/etc/systemd/system/dnscrypt-proxy.service; disabled; vendor preset: disabled)
Active: active (running) since vie 2016-06-17 11:29:27 CEST; 3min 33s ago
Docs: man:dnscrypt-proxy(8)
Main PID: 2878 (dnscrypt-proxy)
Tasks: 1 (limit: 512)
CGroup: /system.slice/dnscrypt-proxy.service
└─2878 /usr/bin/dnscrypt-proxy -R cisco
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] + DNS Security Extensions are supported
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] + Provider supposedly doesn't keep logs
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [NOTICE] Starting dnscrypt-proxy 1.6.1
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] Generating a new session key pair
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] Done
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] Server certificate #208464431 received
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] This certificate is valid
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [INFO] Chosen certificate #208464431 is valid from [2016-06-18] to [2016-06-19]
jun 17 11:57:15 devnull dnscrypt-proxy[3505]: [NOTICE] Proxying from 127.0.0.1:53 to 51.254.115.48:443
Vemos que salen muchas cosas que indican el estado del servicio, pero nos importa la tercera línea «Active: active (running)» que significa que el servicio está activo.
EDITAR EL SERVICIO
Vaya, veo en la última línea que el servicio usa el puerto 53 y yo quiero que use el 40. Puedo editar mediante nano, vi o el que nos guste el archivo y cambiarlo, pero es más cómodo y controlado editarlo desde le propio systemd:
# systemctl edit dnscrypt-proxy.service --full
Sale el archivo de configuración, cambio el puerto, guardo el cambio y salgo.
REINICIAR EL SERVICIO
Como he hecho un cambio, tengo que reiniciar el servicio para que el cambio tome efecto:
# systemctl restart dnscrypt-proxy.service
Si volvemos a mirar el estado (mediante systemctl status dnscrypt-proxy.service) veremos que ahora ya sale el puerto 40.
PARAR EL SERVICIO
Puedo querer parar el servicio porque no me interese tenerlo funcionando un rato por el motivo que sea:
# systemctl stop dnscrypt-proxy.service
Mediante «systemctl status dnscrypt-proxy.service» veremos que la tercera linea ha cambiado:
● dnscrypt-proxy.service - DNSCrypt client proxy
Loaded: loaded (/etc/systemd/system/dnscrypt-proxy.service; disabled; vendor preset: disabled)
Active: inactive (dead) since vie 2016-06-17 12:06:38 CEST; 4s ago
ELIMINAR EL SERVICIO
He decidido que no me gusta el servicio, o funciona mal, así que ya no lo voy a usar más, así que elimino el servicio:
# systemctl disable dnscrypt-proxy.service
Se borra el enlace que creó systemctl cuando creé el servicio con «enable» y desaparece dicho servicio.
Bueno, como véis no es difícil trastear con systemd. Para otra entrada dejo los archivos de configuración «.service» de los servicios y los scripts que utiliza cada servicio.
Aguante elbinario.net
Buen articulo ;)
A veces, en vez de restart también se puede usar reload. Creo que es más rápido y consume menos recursos ya que solo recarga los ficheros de configuración del servicio..