diff options
Diffstat (limited to '10-chrony')
-rw-r--r-- | 10-chrony | 53 |
1 files changed, 37 insertions, 16 deletions
diff --git a/10-chrony b/10-chrony index f1569082b07f..581a575c611f 100644 --- a/10-chrony +++ b/10-chrony @@ -1,19 +1,40 @@ #!/bin/sh -if [ -e "/etc/rc.d/chrony" ]; then - case "$2" in - up) - /etc/rc.d/chrony start - ;; - vpn-up) - /etc/rc.d/chrony start - ;; - down) - /etc/rc.d/chrony stop - ;; - vpn-down) - /etc/rc.d/chrony stop - ;; - esac -fi +INTERFACE=$1 +STATUS=$2 +# Chrony set-up +CHRONY=/usr/bin/chronyc +CONFIG=/etc/chrony.conf +KEYFILE=`grep ^keyfile $CONFIG | sed 's/[^ ]* //' -` +COMMANDKEY=`grep ^commandkey $CONFIG | sed 's/[^ ]* //' -` +PASSWORD=`grep ^$COMMANDKEY $KEYFILE | sed 's/[^ ]* //' -` + +chrony_cmd() { + echo Chrony going $1. + exec $CHRONY <<EOF +password $PASSWORD +$1 +EOF +} + +case "$STATUS" in + up) + chrony_cmd online + ;; + vpn-up) + chrony_cmd online + ;; + down) + # Check for active interface, take offline if none is active + if [ ! `nm-tool|grep State|cut -f2 -d' '` = 'connected' ]; then + chrony_cmd offline + fi + ;; + vpn-down) + # Check for active interface, take offline if none is active + if [ ! `nm-tool|grep State|cut -f2 -d' '` = 'connected' ]; then + chrony_cmd offline + fi + ;; +esac |