Cómo iniciar, detener y reiniciar servicios en Linux

Cómo detener e iniciar servicios en Linux

Como administrador de sistemas, tienes la tarea de manejar bastantes cosas. Y esa lista se hace más larga y complicada cada día. Para colmo, las cosas cambian. Recuerdo que, en el pasado, para iniciar o detener un servicio de Linux, tenía que abrir una ventana de terminal, cambiar a /etc/rc.d/ (o /etc/init.d, dependiendo de la distribución que estuviera usando), localizar el servicio, y emitir el comando /etc/rc.d/SERVICE start|stop|restart (donde SERVICE es el nombre del servicio a iniciar, detener o reiniciar). Cuando trabajaba entre las distribuciones de Redhat y Debian, eso tenía la tendencia a confundirse; intentaba emitir /etc/rc.d/service start en una distribución, sólo para descubrir que debería haber sido /etc/init.d/service start.

Eso ha cambiado. La forma en que un servicio se detiene, se inicia y se reinicia ahora tiene mucho sentido. Incluso mejor, se ha convertido (en su mayor parte) en algo universal.

Más o menos.

La forma de iniciar|parar|reiniciar un servicio dependerá de si su distribución utiliza systemd o init. Incluso en ese caso, es posible que puedas controlar esos servicios a través de múltiples medios. Déjeme explicarlo.

systemctl vs. service

Este es el quid de la cuestión. Hay dos métodos adoptados oficialmente para controlar los servicios:

  • systemctl
  • service

El que utilices dependerá de si tu distribución hace uso de systemd o init. La mayoría de las distribuciones modernas han hecho el cambio a systemd, por lo que systemctl es el gestor de servicios de elección. Sin embargo, los viejos hábitos son difíciles de cambiar, por lo que muchos administradores todavía se aferran al antiguo comando de servicio. Afortunadamente, los desarrolladores de systemd se aseguraron de mantener service y redirigirlo a systemctl. Para complicar más las cosas, es posible que encuentres un servicio aleatorio que hayas instalado y que no haya sido actualizado a las herramientas service o systemctl y tengas que iniciarlo manualmente desde con /etc/rc.d (o /etc/init.d).

Así que todavía puede ser un poco confuso.

Pero aquí buscamos las mejores prácticas; y para iniciar|parar|reiniciar aplicaciones en Linux, las mejores prácticas empiezan y terminan con systemctl.

Uso de systemctl

La complicación termina aquí. De hecho, la detención|arranque|reinicio de servicios en Linux es ahora bastante sencilla. Digamos que estamos en CentOS y queremos parar el servidor Apache. Para ello abriríamos una ventana de terminal y emitiríamos el comando:

 sudo systemctl stop httpd 

El servidor Apache se detendría y volveríamos al prompt de bash. Para iniciar el mismo servicio, emitiremos el comando:

 sudo systemctl start httpd 

El servicio se iniciará y volverás al prompt de bash.

Para reiniciar el mismo servicio, emitiremos el comando:

 sudo systemctl restart httpd 

El servicio se reiniciará y volverás al prompt de bash.

Los comandos anteriores se pueden ejecutar en CentOS, Ubuntu, Redhat, Fedora, Debian, y muchos más.

Uso de service

Para hacer las cosas más interesantes, el comando service sigue funcionando – incluso para aquellas distribuciones que han migrado a systemd y systemctl. Esto significa que aquellos que instintivamente escriben service, cuando necesitan reiniciar un servicio en Linux, no recibirán un error de «Comando desconocido». En el caso de service, el comando se redirigirá a systemctl. De hecho, cuando ejecute el comando service en una distribución habilitada para systemctl, verá claramente la información de redirección (Figura A).

Figura A

Figura A

El comando service redirigiendo a systemctl.

El uso del comando service es un poco diferente al de systemctl. El nombre del servicio y las opciones start|stop|restart se intercambian:

 sudo service httpd startsudo service httpd stopsudo service httpd restart 

En cada caso, verás el servicio redirigido a systemctl, pero el servicio que se intenta iniciar|stop|restart lo conseguirá.

No es tan complicado

He complicado el tema mencionando los antiguos métodos de inicio, parada y reinicio de servicios en Linux. A decir verdad, el proceso de control de servicios en Linux no es tan complejo; sólo hay que entender el comando correcto a utilizar.

Para saber más sobre lo que systemctl puede hacer por ti, asegúrate de emitir el comando man systemctl y dar una lectura a la página man.

También vea

  • Cómo monitorear sus servidores Linux con nmon (TechRepublic)
  • Cómo instalar Stacer para una rápida optimización del sistema Linux (TechRepublic)
  • Cómo usar wget para descargar archivos a su servidor Linux sin GUI (TechRepublic)
  • Cómo evitar que Ubuntu sobrescriba /etc/resolv.conf (TechRepublic)
  • Lanzamiento de un nuevo y mejorado servidor de archivos Samba (ZDNET)
sysctlhero.jpg
Imagen: Jack Wallen

Deja una respuesta

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