TRASTEANDO CON SYSTEMD

        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.

Compartir

4 Comentarios

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

Deja una respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax