Habilitar y deshabilitar servicios al arranque

[h]Habilitar y deshabilitar servicios al arranque[/h]
https://www.wifi-libre.com/img/members/3/servicios_5.jpg
Vamos a ver en este post un par de comandos systemd para gestionar los servicios al arranque.
Puede venir bien para optimizar el tiempo de arranque y agilizar el sistema: No sirve de nada tener a servicios ejecutándose si nunca los vamos a usar.
Sin caer en la “conspiraparanoia”, podemos también argumentar que quitar un servicio que no usamos es disminuir los riesgos: No se podrá usar tan fácilmente de forma maligna.
Antes de ver los comandos cabe señalar que se puede hacer con el ratón por vía gráfica
Por ejemplo en Ubuntu se hace con “sesión e inicio” que tenemos en nuestras herramientas paras configurar el sistema.
https://www.wifi-libre.com/img/members/3/servicios_inicio_1.jpg
Sin embargo “sesión e inicio” no permite gestionar todos los servicios: La linea de ordenes es siempre lo más potente cuando se trata de configurar un sistema.
Es también de interés familiarizarse con systemctl, la linea de ordenes para systemd.
Hace más o menos un par de años que systemd se ha convertido en el sistema de arranque dominante en el mundo de la distribuciones GNU-Linux.

Tomemos un par de ejemplos de concretos.
Podéis ver en la captura de pantalla de la GUI “sesión e incio” que por defecto Ubuntu arranca el bluetooth al inicio.
https://www.wifi-libre.com/img/members/3/mini_servicios_2.jpg
Personalmente nunca lo uso. La interfaz está encendida por defecto, En este caso es muy fácil: Tacho o no tacho el servicio.

Mirad ahora todos los servicios que tenéis
Una forma de hacerlo es con

sudo  systemctl list-unit-files --type=service

https://www.wifi-libre.com/img/members/3/servicios_3.jpg
Veréis que tenéis muchas más cosas que en la GUI.
Muchos de los servicios que están aqui no nos conviene tocarlos, así que debemos ir con cabeza.

El segundo ejemplo: En mi lista larga veo que tengo a “Modem manager” activado

ModemManager.service                       enabled

Para saber más acerca del servicio

sudo systemctl status ModemManager.service 

https://www.wifi-libre.com/img/members/3/servicios_4.jpg
Está activo desde que arrancó la computadora. Y veo en que no encuentra dispositivos adecuados.
¿A qué sirve?
Podemos ver la descripción con

systemctl show  ModemManager -p Description

Pero en este caso no es de mucho uso:

Description=Modem Manager

En otros casos ayuda más. Es que tampoco el nombre deja mucho sitio a los errores de interpretaciones

[quote]What is ModemManager?
ModemManager is a DBus-activated daemon which controls mobile broadband (2G/3G/4G) devices and connections. Whether built-in devices, USB dongles, bluetooth-paired telephones, or professional RS232/USB devices with external power supplies, ModemManager is able to prepare and configure the modems and setup connections with them.[/quote]Modem manager @ wiki by freedesktop
Es para conectarse por 2,3 y 4G.
No tengo un dispositivo para esto, Nunca he usado este servicio y no tengo la intención de hacerlo. Problema: No lo puedo gestionar con la GUI porque no aparece.
¿Cómo deshabilitar este servicio que no necesito para nada?

Se hace de forma muy simple con systemctl
[list=1]
]sudo systemctl stop ModemManager Parar el servicio/]
]sudo systemctl disable ModemManager Deshabilitar el servicio al arranque
… Y si un día me hace falta conexión por 4G (siendo el sobremesa lo dudo mucho)/
]
]sudo systemctl start ModemManager Activar el servicio/]
]sudo systemctl enable ModemManager Activar el servicio al arranque/]
[/list]
Podemos también usar “restart” en lugar de start si el servicio estaba arrancado antes.
Estoy seguro de que has tenido una vez u otra que re-arrancar así al Network Manager tras experimentar con el modo monitor. :stuck_out_tongue:

Veremos otro día como crear su propio servicio. Para, por ejemplo, ejecutar un script casero automáticamente a cada arranque.
Algo que podemos hacer a lo bruto pegando nuestro script en el directorio escondido ** .bashrc**
Pero la forma la más correcta y efectiva es crear un servicio dedicado con un PID que lleva su nombre y todo bonito.
Sacamos así partido de las ventajas de la gestión por servicios mediante systemctl
Más lectura
[list=*]
]How to Enable or Disable Services on Boot in Linux Using chkconfig and systemctl Command by Prakash Subramanian @ 2daygeek.com/]
[/list]