Moin *,
ich möchte, dass ein System (CentOS 7) verlässlich über Statusänderungen von Netzwerkschnittstellen per Jabber informiert. Hierzu habe ich ein Script erstellt, welches im wesentlichen auch funktioniert:
Das funktioniert im Prinzip sehr gut mit einer Ausnahme: Suspend (wahrscheinlich auch Hibernate).
Im Falle von Suspend wird die Meldung zur Deaktivierung der Interfaces erst nach dem nächsten Resume verschickt, also unmittelbar vor der Meldung, dass die Interfaces wieder aktiviert worden sind. Vermutlich reicht die Zeit nicht, um noch eine entsprechende XMPP-Nachricht abzusetzen, solange das Interface noch aktiv ist.
Ich brauche also eine Möglichkeit, einen Hook an der Stelle im System zu setzten, an welcher Suspend/Hibernate eingeleitet wird, aber das Netzwerk noch verfügbar ist. Ich hatte gehofft, dies im NetworkManager via Dispatcher machen zu können, aber scheinbar bekommt der das nicht mit. Alternativ muss ich wohl nach einem passenden Trigger in Systemd suchen?
TNX
cu, gehrke
ich möchte, dass ein System (CentOS 7) verlässlich über Statusänderungen von Netzwerkschnittstellen per Jabber informiert. Hierzu habe ich ein Script erstellt, welches im wesentlichen auch funktioniert:
Code:
# cat /etc/NetworkManager/dispatcher.d/50-notify-xmpp
#!/bin/sh
# This is a NetworkManager dispatcher script for notification of
# online/offline events by XMPP.
# https://wiki.archlinux.org/index.php/NetworkManager
export system=`hostname`
export device=$1
export status=$2
su -c 'echo "$system: device $device= $status" | sendxmpp -tls -s info --chatroom <chatroom>' <user>
exit 0
Im Falle von Suspend wird die Meldung zur Deaktivierung der Interfaces erst nach dem nächsten Resume verschickt, also unmittelbar vor der Meldung, dass die Interfaces wieder aktiviert worden sind. Vermutlich reicht die Zeit nicht, um noch eine entsprechende XMPP-Nachricht abzusetzen, solange das Interface noch aktiv ist.
Ich brauche also eine Möglichkeit, einen Hook an der Stelle im System zu setzten, an welcher Suspend/Hibernate eingeleitet wird, aber das Netzwerk noch verfügbar ist. Ich hatte gehofft, dies im NetworkManager via Dispatcher machen zu können, aber scheinbar bekommt der das nicht mit. Alternativ muss ich wohl nach einem passenden Trigger in Systemd suchen?
TNX
cu, gehrke