Como monitorar globalmente os estados da unidade systemd?

1

Estou tentando criar um script para monitorar falhas de unidade e ser alertado por e-mail globalmente (ou seja, não usando OnFailure= em cada unidade que quero monitorar).

Na documentação, encontrei o sinal JobRemoved D-Bus, que soa exatamente como o que estou procurando, apenas para trabalhos. Em particular, isso significa que Type=simple units acionará JobRemoved assim que o processo filho for criado e não esperará que ele termine.

Existe um sinal semelhante para monitorar globalmente as mudanças de estado da unidade?

(Esta é a minha tentativa atual: Link )

    
por F.X. 11.09.2016 / 21:44

1 resposta

2

Você pode se conectar ao sinal PropertiesChanged em cada unidade que é emitida sempre que uma propriedade de uma unidade é alterada. A propriedade ActiveState

contains a state value that reflects whether the unit is currently active or not. The following states are currently defined: active, reloading, inactive, failed, activating, deactivating. active indicates that unit is active (obviously...). reloading indicates that the unit is active and currently reloading its configuration. inactive indicates that it is inactive and the previous run was successful or no previous run has taken place yet. failed indicates that it is inactive and the previous run was not successful (more information about the reason for this is available on the unit type specific interfaces, for example for services in the Result property, see below). activating indicates that the unit has previously been inactive but is currently in the process of entering an active state. Conversely deactivating indicates that the unit is currently in the process of deactivation.

(do systemd dbus docs ).

Para obter uma lista inicial de unidades, você pode usar o método ListUnits e assinar os sinais UnitNew e UnitRemoved para ser notificado quando as unidades forem adicionadas / removidas.

Existem vários projetos existentes que já usam isso, incluindo systemd_mon e sagbescheid .

    
por 11.09.2016 / 22:10

Tags