71 lines
2.9 KiB
Bash
Executable file
71 lines
2.9 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Preremove script for Network UPS Tools package
|
|
|
|
# Stop all nut services
|
|
|
|
NUT_DIR="@prefix@"
|
|
prefix="@prefix@" # expanded as part of some autoconf macros below
|
|
|
|
# TODO/FIXME : Should "/var/run" be a configure variable?
|
|
# Note that "/var/run" is transient tmpfs, so upgrade has to be done during same uptime.
|
|
ACTIVE_ENUMERATOR_FMRI_FILE="/var/run/nut-driver-enumerator-fmri.prev"
|
|
|
|
if test -x /usr/sbin/svcadm && test -x /usr/sbin/svccfg && test -x /usr/bin/svcs ; then
|
|
# Unconfigure SMF services
|
|
# First detect the first active (online, maintenance, etc.)
|
|
# instance of nut-driver-enumerator so we can pass it to the
|
|
# next lifetime in case of re-install of NUT and keep the
|
|
# user's previously declared preference.
|
|
ACTIVE_ENUMERATOR="`/usr/bin/svcs -H -o state,fmri '*/nut-driver-enumerator:*' | while read S F ; do [ "$S" != "disabled" ] && [ "$S" != "offline" ] && echo "$F" && break ; done`"
|
|
if [ -n "$ACTIVE_ENUMERATOR" ]; then
|
|
rm -f "${ACTIVE_ENUMERATOR_FMRI_FILE}"
|
|
touch "${ACTIVE_ENUMERATOR_FMRI_FILE}"
|
|
chmod 600 "${ACTIVE_ENUMERATOR_FMRI_FILE}"
|
|
chown 0:0 "${ACTIVE_ENUMERATOR_FMRI_FILE}"
|
|
echo "${ACTIVE_ENUMERATOR}" > "${ACTIVE_ENUMERATOR_FMRI_FILE}"
|
|
fi
|
|
# First tell the automagic to stop, so it does not interfere; diligently clean it out below
|
|
/usr/sbin/svcadm disable nut-driver-enumerator:default || true
|
|
/usr/sbin/svcadm disable nut-driver-enumerator:daemon || true
|
|
for S in nut nut-monitor nut-server ; do
|
|
echo "Stopping NUT service: $S..."
|
|
/usr/sbin/svcadm clear "$S" 2>/dev/null
|
|
/usr/sbin/svcadm disable -s "$S"
|
|
echo "Removing NUT service: $S..."
|
|
/usr/sbin/svccfg delete "$S" || \
|
|
/usr/sbin/svccfg -s "$S" delete || \
|
|
/usr/sbin/svccfg -s "$S" delete default
|
|
done
|
|
echo "Stopping NUT drivers, if any..."
|
|
@SBINDIR@/upsdrvsvcctl stop
|
|
@SBINDIR@/upsdrvctl -DDDDD stop
|
|
sleep 5
|
|
for S in `/usr/bin/svcs -H -o fmri '*/nut-driver:*'` `/usr/bin/svcs -H -o fmri '*/nut-driver-enumerator:*'` ; do
|
|
echo "Stopping NUT service: $S..."
|
|
/usr/sbin/svcadm clear "$S" 2>/dev/null
|
|
/usr/sbin/svcadm disable -s "$S"
|
|
done
|
|
sleep 5
|
|
for S in `/usr/bin/svcs -H -o fmri '*/nut-driver:*' | grep -wv default` `/usr/bin/svcs -H -o fmri '*/nut-driver-enumerator:*' | grep -wv default` ; do
|
|
echo "Removing NUT service: $S..."
|
|
# Note: S here is a full FMRI URL
|
|
SB="`echo "$S" | sed 's,:[^:]*$,,'`"
|
|
SI="`echo "$S" | sed 's,^.*:\([^:]*\)$,\1,'`"
|
|
/usr/sbin/svcadm disable -s "$S"
|
|
/usr/sbin/svccfg -s "$SB" delete -f "$SI" || \
|
|
/usr/sbin/svccfg delete "$S"
|
|
done
|
|
for S in nut-driver-enumerator nut-driver ; do
|
|
echo "Removing NUT service: $S..." && \
|
|
/usr/sbin/svccfg delete "$S" || \
|
|
/usr/sbin/svccfg -s "$S" delete || \
|
|
/usr/sbin/svccfg -s "$S" delete default
|
|
done
|
|
else
|
|
[ -x /etc/init.d/nut ] && /etc/init.d/nut stop
|
|
fi
|
|
|
|
if [ -n "@auglensdir@" ] && [ -d "@auglensdir@" ] && [ -d "@datarootdir@/augeas-lenses" ] ; then
|
|
( cd "@datarootdir@/augeas-lenses" && find . -type f -exec rm -f "@auglensdir@"/'{}' \; )
|
|
fi
|