Gestionar servicios en tu distribución GNU/Linux

init Linux esquema

Cuando se trabaja con servicios en una distro, dependiendo del tipo de sistema que estés usando (SysV init, Upstart, systemd,…), podría variar la forma en la que los servicios se pueden parar, poner en marcha, parar, reiniciar, etc. Es un punto donde muchos dudan cómo se hace realmente, y el hecho de que haya varios sistemas diferentes no ayuda a algunos usuarios más inexpertos, que intentan hacerlo con el comando inadecuado.

Por eso, voy a mostrar un sencillo tutorial con el que te quedará más claro cómo puedes trabajar en tu distro, sea cual sea. Para ello, lo primero que debes tener claro es el tipo de demonio que estás usando. Como he dicho, no en todas las distros se usan el mismo tipo de sistema de inicio. De hecho, como sabes, algunas se han opuesto al nuevo systemd y han generado forks o derivados con el antiguo SysV, como es el caso de Devuan respecto a Debian…

¿Cómo saber el sistema que usa mi distro? Pues, puedes saberlo buscando estas rutas, y si las tienes, tendrás ese sistema en tu distro:

  • Para saber si tienes systemd: busca la ruta /usr/lib/systemd
  • Para saber si tienes Upstart: busca esta otra ruta /usr/share/upstart
  • Para saber si tienes SysV init: busca el path /etc/init.d
  • Hay otros, aunque sea algo más raro, en esos casos particulares, puedes hacer algo similar si sospechas que no son los anteriores.

Otra forma de hacerlo incluso más sencilla, porque es la misma para todos, es buscar info en /proc sobre el PID=1, es decir, el primer proceso del que cuelgan el resto y que se corresponde precisamente con este demonio de inicio. Para ello, solo ejecuta el siguiente comando y te devolverá el nombre:


sudo stat /proc/1/exe

Ahora ya sabes qué sistema tienes, por tanto, vamos a los comandos que puedes usar para gestionar servicios:

  • SysV init: /etc/init.d/[nombre_demonio_servicio] [acción]
  • systemd: systemctl [acción] [nombre_demonio_servicio]
  • Upstart: service [nombre_demonio_servicio] [acción]
  • Otros: si usas otro sistema diferente, es mejor que mires el manual. Por ejemplo, algunos casos raros en Linux y otros Unix puede que usen la señal del proceso SIGHUP para restablecer un servicio: kill -HUP $(cat /var/run/[servicio-PID])

Tienes que sustituir [acción] por lo que necesitas hacer. Por ejemplo, si necesitas reiniciar, pues usa reset, si quieres parar usa stop, si quieres poner en marcha usa star, etc. Y sustituye [nombre_demonio_servicio] por el nombre del demonio del servicio que quieres poner en marcha. Por ejemplo:


systemctl reset httpd

Espero que ahora lo tengas más claro.

2 comentarios, deja el tuyo

  1.   CRISTIAN dijo

    Sigue habiendo sistemas con upstart? Creo que algún Ubuntu viejo nomás.
    Además aunque tengas systemd igual podes tener la carpeta etc/init.d
    Prefiero usar algún otro comando como ps o pstree, y no abusar de sudo-esto-sudo-aquello.
    Saludos

  2.   CRISTIAN dijo

    El comando “service” sirve tanto en sistemas init.d como en systemd

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.