Primeros pasos con systemctl | Activar el administrador del sistema

La gestión de servicios es una responsabilidad clave para los administradores de sistemas. No hay duda de que la transición del antiguo método SysV (usando el service y chkconfig comandos) y los más recientes systemd-comandos basados ​​(como systemctl) fue controvertido. De hecho, muchos administradores de sistemas todavía tienen sentimientos muy fuertes hacia uno u otro lado.

La realidad es que muchas distribuciones, incluida Red Hat Enterprise Linux (RHEL), han comenzado a administrar servicios con systemd. Por lo tanto, tú y yo debemos saber cómo trabajar con el systemctl control de manejo.

No soy el tipo de autor/entrenador/administrador que asume que todos son avanzados. Con eso en mente, dirigiré este artículo a las personas que necesitan una explicación básica y directa sobre cómo y cuándo usar los más comunes. systemctl subcomandos. Al final, también ofrezco un gran truco para mostrar rápidamente todos los systemctl subcomandos.

Nota la página de manual systemctl se refiere a la segunda palabra de la cadena como "comando", lo que suena algo confuso. me referiré a systemctl sí mismo como, luego la cadena que lo sigue como. es el nombre del servicio y ocupa la tercera posición en la sintaxis.

Aquí hay un ejemplo de la sintaxis:

systemctl subcommand argument
# systemctl status sshd

Mostraré cómo y cuándo usar systemctl. La mayoría de mis ejemplos usan common sshd un servicio.

Índice

    Estado del servicio

    El mejor lugar para comenzar es comprender la funcionalidad actual del servicio. Comenzaré con el enfoque más simple, usando el status subcomando:

    # systemctl status sshd

    Por supuesto, la idea es que acaba de sentarse en un servidor Linux desconocido y necesita saber el estado actual del sshd un servicio. Tenga en cuenta que se proporciona mucha otra información, incluida una sinopsis del servicio, desde dónde se cargó, el estado, el ID del proceso (PID) y los cambios recientes.

    el systemctl status El comando también es útil para solucionar problemas. Cuando resuelvo un problema de configuración, casi inmediatamente verifico su estado usando systemctl. ¿Por qué molestarse con firewalls, SELinux y archivos de configuración si el servicio ni siquiera se está ejecutando?

    Entonces, ahora sabe cómo verificar el estado de los servicios como SSH. ¿Cómo manejas este estado?

    Iniciar y detener servicios

    Cuando edita un archivo de configuración para un servicio en ejecución, necesita cualquiera de los servicios. Esto obliga al servicio a volver a leer el archivo y, por lo tanto, a implementar los cambios. En el pasado, usó el service comando, como en los siguientes ejemplos:

    # service sshd restart

    Servicios bajo systemd se gestionan a través de la systemctl pedido. Para reiniciar el servicio SSH con systemctl, Entrar:

    # systemctl restart sshd

    Personalmente, encuentro esta sintaxis un poco más fácil. Se lee casi como una oración: "Systemctl, reinicie sshd".

    La sintaxis es similar si desea detener o iniciar un servicio:

    # systemctl stop sshd
    
    # systemctl start sshd

    Los servicios que se niegan a detenerse correctamente pueden eliminarse utilizando systemctl, demasiado. Por ejemplo, para matar al sshd servicio, ingrese:

    # systemctl kill sshd

    Los servicios de recarga son un poco diferentes. el reload el subcomando solo vuelve a leer el archivo de configuración por el servicio, mientras que el restart El subcomando finaliza todas las conexiones actuales y vuelve a leer el archivo de configuración.

    Por ejemplo, si escribe systemctl restart sshd, se eliminan todas las conexiones SSH actuales. Sin embargo, si lo vuelve a cargar, se mantienen las conexiones existentes. En ambos casos, el archivo de configuración se vuelve a leer y se implementan los cambios.

    La recarga da como resultado menos tiempo de inactividad, pero no todos los servicios lo admiten.

    el start, stop, restart, y reload los subcomandos solo afectan el tiempo de ejecución actual.

    Activar y desactivar servicios

    Muchos administradores que son nuevos en Linux están confundidos acerca de la diferencia entre start/stop y enable/disable. ya he discutido start, stop, y restart en la sección anterior. Start y stop se utilizan para cambiar el estado actual del servicio. Sin embargo, si el servidor se reinicia, el estado del servicio se revertirá independientemente de la configuración de inicio predeterminada. En otras palabras, si detengo el sshd servicio y luego reinicie mi servidor, el proceso de inicio mirará el archivo de configuración y comenzará o no iniciará sshd, Como se especificó. Si detengo el servicio y luego lo reinicio y el archivo de configuración dice que inicie el servicio al inicio, se ejecutará nuevamente.

    Anteriormente, utilizó el chkconfig para establecer el parámetro de inicio del servicio para cada nivel de ejecución. Aquí un ejemplo:

    # chkconfig --level 35 sshd on

    Este comando permite sshd para comenzar en los niveles de ejecución 3 y 5.

    Con systemctl, configurar el parámetro de inicio predeterminado es el trabajo del enable y disable subcomandos. La sintaxis es la misma que para el start, stop, y restart subcomandos. Por ejemplo, para que SSH se inicie cuando se inicie el servidor, escriba:

    # systemctl enable sshd

    Del mismo modo, para configurar SSH para que se inicie durante el arranque, escriba:

    # systemctl disable sshd

    Establecer la configuración de inicio predeterminada para los servicios es sencillo, al igual que iniciar y detener los servicios. Sin embargo, parece haber cierta confusión sobre el uso de los dos juntos.

    Utilice iniciar y activar juntos

    A algunos les resulta extraño que al activar un servicio no se inicie. Por ejemplo, si acaba de descargar un nuevo programa y desea ejecutarlo para probar su funcionalidad y desea configurarlo para que se inicie cuando se inicie el servidor, deberá ingresar dos comandos:

    # systemctl start sshd
    
    # systemctl enable sshd

    La desactivación de un servicio se realiza de la misma manera. Pegar systemctl disable sshd para evitar que SSH se inicie cuando se inicia el servidor. Sin embargo, si SSH se ejecuta en el entorno de ejecución actual, permanecerá activo incluso si está deshabilitado. Debes stop SSH para deshabilitarlo en el tiempo de ejecución actual.

    Por ejemplo, para detener SSH y evitar que se inicie al iniciar el sistema, escriba:

    # systemctl stop sshd
    
    # systemctl disable sshd

    No olvides consultar el servicio. status cada vez que no esté seguro al ingresar:

    # systemctl status sshd

    Puede verificar si un servicio está configurado para iniciarse automáticamente utilizando otro systemctl subcomando: is-enabled. Por ejemplo, para ver si SSH está habilitado, escriba:

    # systemctl is-enabled sshd

    Muchos subcomandos - el truco

    cubrí mucho systemctl subcomandos, incluyendo start, stop, restart, enable, disable, status, Y de otros. ¡Eso es mucho para recordar! Aquí es donde entra en juego la finalización de la pestaña de su viejo amigo. Pruebe la siguiente técnica en su sistema: systemctl luego agregue un solo espacio. Golpealo Lengua tecla dos veces y bash muestra todo systemctl subcomandos! Este truco de tabulación es uno que creo que pocos administradores de sistemas aprovechan lo suficiente.

    Conclusión

    Como puede ver, la gestión de servicios a través de la systemctl ordenar realmente no es tan difícil. Lo encuentro más simple y lógico que el anterior. service y chkconfig pedidos, personalmente. También es conveniente tener un solo comando para administrar los servicios en lugar de dos.

    Estos son los puntos clave para recordar:

    • Use iniciar/detener/reiniciar para administrar el tiempo de ejecución actual.
    • Use iniciar/detener/reiniciar/recargar después de modificar los archivos de configuración.
    • Use habilitar/deshabilitar para administrar la acción de arranque predeterminada.
    • Utilice el estado muy temprano en el proceso de solución de problemas.

    Finalmente, no necesita memorizar todos los systemctl subcomandos. Solo ingresa el systemctl comando y sígalo con un espacio, luego presione Lengua dos veces. ¡La función de pestaña incorporada de Bash hace el resto!

    Los administradores del sistema se encuentran jugando con los servicios de forma regular y, con suerte, usted se siente un poco más cómodo con el uso de los más comunes. systemctl subcomandos.

    Artículos de interés

    Subir