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