¿Puedo hacer que systemd muestre el estado del servicio después de iniciar o detener un servicio?


8

Estoy tratando de hacer que systemd haga lo que harían los scripts init.d, mostrando el estado de un servicio automáticamente después de recibir manualmente un comando para iniciar o detener. ¿Es esto de alguna manera posible?

Lamentablemente, systemd vuelve a aparecer, ya que se ejecuta en segundo plano y luego tiene que hacer un segundo comando para mostrar el estado, el inicio o la detención pueden o no haber funcionado, systemd no se lo dirá a menos que lo pida y lo deje felizmente ignorante.

es decir. Estoy tratando de conseguir

service nginx status

para ejecutarse automáticamente después de hacer un

service nginx start

o

service nginx restart

(o en un sistema cerebral dañado systemctl start nginx.service)


1
Uso los comandos "daño cerebral" (¡me gustan!). En realidad, no dicen nada cuando todo está bien, pero le avisarán cuando algo falle. Al menos así es en openSUSE 13.1. ¿Estás seguro de que están "en silencio" cuando fallan? ¿Lo intentaste systemctl start nginx.service && echo SUCCESS || echo failure?
Huygens

2
@Huygens no cuenta con que systemd pueda detectar todas las fallas, definitivamente puede haber fallas silenciosas o advertencias. Los procesos se inician en segundo plano y systemd sale del control, no se parece en nada a init.d Puedo ver que sucede de manera consistente con la creación de archivos PID falla. Obtener un estado después de un inicio o reinicio manual es una necesidad absoluta con systemd (y punto de mi pregunta).
ck_

gracias por la aclaración, ¡aprendí algo aquí! ¡Espero una respuesta a esta pregunta entonces!
Huygens

La sintaxis de braindead es el servicio uno porque, a diferencia de la sintaxis de systemd mucho mejor, no le permite operar en múltiples servicios a la vez: systemctl stop service1 service2 service3
dios

1
Si aún ve la misma inconsistencia cuando verifica el estado de salida de systemctl@Huygens, entonces el problema puede ser que se nginx.serviceinicia con éxito pero se bloquea después. Intente revisar el diario o en los registros de Nginx.
Amir

Respuestas:


1

No hay un comando incorporado para su caso de uso, por lo que tendrá que crear un alias para su shell favorito o un envoltorio de script trivial.


0

Para hacer que systemd sea más "detallado", agregue / descomente las siguientes líneas en su /etc/systemd/journald.confy luego reinicie:

ForwardToConsole=yes
MaxLevelConsole=debug
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.