Reinicie un servicio usando el comando systemctl restart

Reinicie Un Servicio Usando El Comando Systemctl Restart



El sistemad es un administrador de servicios del sistema que se usa ampliamente en Linux. Administrar sistemad servicios, el sistemactl Se utiliza la utilidad de línea de comando. Esta herramienta también se utiliza para reiniciar cualquier servicio systemd.

Los servicios en Linux se gestionan a través de su archivo de configuración. Si se realizan modificaciones al archivo de configuración de un servicio, es necesario iniciar un reinicio del servicio para aplicar las modificaciones. Al reiniciar el servicio, systemd vuelve a evaluar el archivo de configuración y aplica las modificaciones.

En esta guía, explicaré cómo usar systemctl para reiniciar un servicio en Linux.







Nota: Esta guía incluye comandos e instrucciones que se ejecutan en Ubuntu 22.04. El comando funcionará sin problemas en las distribuciones que vienen con el administrador de servicios systemd.



El comando systemctl restart

El Reanudar El comando esencialmente detiene un servicio y lo inicia nuevamente. Si el servicio o unidad no está operativo, el comando de reinicio iniciará su operación.



El comando de reinicio no elimina los procesos que están vinculados al servicio. Tomemos el ejemplo de los descriptores de archivos, que son identificadores no negativos asignados por el sistema operativo a los archivos abiertos por un servicio. Si reinicia un servicio, el descriptor de archivo vinculado a ese servicio permanecerá allí durante el proceso de reinicio.





Si desea eliminar todos los procesos vinculados al servicio, debe hacerlo explícitamente. detener el servicio y comenzar otra vez.

Cómo reiniciar un servicio

En Linux, puede reiniciar un servicio utilizando el sistema sudoctl herramienta de línea de comando con el Reanudar opción y especificando su nombre. La sintaxis general se proporciona a continuación:



sudo reiniciar systemctl [ Nombre del Servicio ]

Necesitará sudo privilegios para reiniciar un servicio.

Por ejemplo, reiniciemos el ssh servicio.

sudo systemctl reiniciar ssh.servicio

Para reiniciar varios servicios, agregue el nombre de cada servicio después del Reanudar comando con un espacio.

sudo systemctl reiniciar ssh.servicio smbd.servicio

Otros comandos de reinicio se proporcionan en la siguiente tabla:

intentar reiniciar Detiene o inicia el servicio o servicios especificados y si el servicio no se está ejecutando, no lo inicia.
recargar o reiniciar Vuelva a cargar el servicio o servicios compatibles y, si el servicio no es compatible, reinícielo y actívelo.
intentar-recargar-o-intentar-reiniciar Vuelva a cargar el servicio o servicios compatibles y, si el servicio no es compatible, reinícielo sin activarlo.

En los comandos anteriores, el .servicio la extensión es opcional.

Cómo reiniciar automáticamente un servicio

En Linux, si un servicio falla, entonces el sistemad Lo reinicié de forma predeterminada. No obstante, en muchos casos puede ser necesario modificar la forma en que se reinicia un servicio. Por ejemplo, es posible que se necesite una acción manual durante el proceso de depuración del servicio personalizado.

Los archivos de unidad systemd o archivos de servicio se encuentran en /etc/systemd/sistema o /lib/systemd/sistema dependiendo principalmente de cómo se crea el servicio. Para enumerar los archivos de unidad en Linux, use el siguiente comando:

es / biblioteca / sistemad / sistema

Puede ver los archivos de configuración de diferentes servicios. abramos el servicio ssh archivo usando el nano editor.

sudo nano / biblioteca / sistemad / sistema / servicio ssh

Aquí puedes modificar el Reanudar configuración. De forma predeterminada, está configurado en en caso de falla . Otras opciones para reiniciar un servicio se enumeran a continuación:

  • no
  • siempre
  • en éxito
  • en caso de falla
  • anormal
  • en aborto
  • perro guardián

Otra opción en el archivo de servicio de la unidad es ReiniciarSec que se utiliza para especificar el número de segundos después de los cuales se reiniciará el servicio.

[ Servicio ]

Reanudar =siempre

ReiniciarSec = 5

Estas instrucciones significan que el servicio se reiniciará al iniciar y, si se interrumpe, se reiniciará después de 5 segundos.

Después de modificar la configuración, ejecute el siguiente comando para aplicar los cambios.

sudo demonio de recarga systemctl

Otros ajustes importantes a tener en cuenta son InicioLimitIntervalSec y InicioLimitBurst . Estas opciones son útiles para establecer el tiempo máximo y el número máximo de reintentos para reiniciar un servicio.

[ Unidad ]

InicioLimitIntervalSec = 300

InicioLimitBurst = 4

La instrucción anterior indica que systemd dejará automáticamente de intentar reiniciar un servicio si no se inicia después de 300 segundos y 4 reintentos.

Para verificar si el servicio se reinicia después de 5 segundos o no, cierre el servicio usando el PID del servicio y el matar dominio.

sudo matar -9 [ PID ]

Después de 5 segundos, se reiniciará el servicio; utilizar el diarioctl comando para verificar el estado del servicio ssh .

diarioctl -en servicio ssh

Cómo reiniciar un servicio cuando se reinicia el servicio dependiente

En Linux, muchos servicios son interdependientes y, de manera similar, deben reiniciarse cuando se reinicia un servicio dependiente.

Hay tres opciones diferentes en el archivo de servicio de la unidad para reiniciar un servicio, con un servicio dependiente reiniciado.

  • Parte de
  • Se une a
  • Requiere

Todas estas opciones realizan la misma tarea.

Tomemos un ejemplo de ssh.service que depende de apparmor.service; un módulo de seguridad de Linux para proporcionar el acceso necesario. Para enumerar las dependencias de un servicio en el uso de Linux sistemactl con dependencias de lista comando y nombre del servicio.

systemctl lista-dependencias ssh.service

Por lo tanto, si desea reiniciar ssh.service cuando reinicia apparmor.service, debe incluir la opción PartOf, BindsTo o Requires junto con el nombre del servicio en la sección [Unidad] del archivo apparmor.service.

Abra el archivo apparmor.service.

sudo nano / biblioteca / sistemad / sistema / apparmor.servicio

Agregue la siguiente línea en la sección [Unidad].

Parte de =ssh.servicio

Guarde el archivo y ejecute el comando daemon-reload.

sudo recarga-demonio systemctl

Ahora, reinicie el servicio ssh y luego comprobar el apparmor.servicio registro.

Notarás el apparmor.servicio reinicia al mismo tiempo el servicio ssh reiniciado.

Conclusión

Para reiniciar un servicio o servicios en Linux, el sistemactl El comando se utiliza con el Reanudar opción. El sistemactl es una utilidad de línea de comandos utilizada para administrar los servicios systemd. El Reanudar La opción inicia un servicio y luego lo detiene, activando un servicio inactivo. Sin embargo, puede reiniciar un servicio sin activarlo utilizando el intentar reiniciar opción.