prerm is in erlang-base 1:18.3-dfsg-1ubuntu3.
This file is a maintainer script. It is executed when installing (*inst) or removing (*rm) the package.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | #! /bin/sh
# prerm script for erlang-base
#
# see: dh_installdeb(1)
set -e
# summary of how this script can be called:
# * <prerm> remove
# * <old-prerm> upgrade <new-version>
# * <new-prerm> failed-upgrade <old-version>
# * <conflictor's prerm> remove in-favour <package> <new version>
# * <deconfigured's prerm> deconfigure in-favour <package being installed> <version> \
# removing <conflicting package> <version>
# for details, see /usr/share/doc/debian-policy/
case "$1" in
remove|upgrade)
echo -n "Searching for services which depend on erlang and should be stopped..."
# find all init scripts and packages they belong
inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::')
# filter the list of the packages
packs=$(echo $inits | sed -e's/:[[:space:]]\+[^[:space:]]*//g' | sed -e's/ /\n/g' | sort -u)
# find packages, which depend on erlang
packs=$(dpkg -s $packs 2>/dev/null | egrep '^Package:|^Status:|^Depends' | awk '{if ($1 ~ /^Package:/) {package=$2;inst=0} else if ($0 ~ /^Status:.* installed$/) {inst=1} else if ((inst==1) && ($0 ~ /^Depends:.* erlang/)) {print package}}')
# construct services list from the packages
services=""
for p in $packs ; do
service=$(echo $inits | sed -e's/\([^:]\) /\1\n/g' | awk "/^$p:/ {print \$2}")
services="$services $service"
done
services=$(echo $services | tr '\n' ' ' | sed -e's/\(^[[:space:]]*\|[[:space:]]*$\)//g')
if [ -z "$services" ] ; then
echo "none found."
else
echo "found: $services."
echo "Stopping services which depend on erlang"
rl=$(runlevel | awk '{print $2}')
failed=""
for service in $services ; do
if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
idl="invoke-rc.d ${service}"
elif [ -f /usr/share/file-rc/rc -o -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ] ; then
idl=$(filerc $rl $service)
else
idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
fi
if [ -n "$idl" ] ; then
echo -n " $service: stopping..."
if $idl stop > /dev/null 2>&1 ; then
echo "done."
else
echo "failed. ($?)"
failed="$failed $service"
fi
fi
done
if [ -n "$failed" ] ; then
echo "The following services failed to stop: $failed."
else
echo "Services stopped successfully."
fi
fi
;;
failed-upgrade|deconfigure)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 0
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
case "$1" in
remove|upgrade)
echo -n "Killing epmd..."
if which pgrep >/dev/null ; then
pid=$(pgrep epmd | head -1)
if [ -z "$pid" ] ; then
echo "it is not running."
else
if epmd -kill 1>/dev/null 2>&1 || kill $pid 2>/dev/null ; then
echo "done."
else
echo "failed."
fi
fi
else
if epmd -kill 1>/dev/null 2>&1 ; then
echo "done."
else
echo "failed (or it is not running)."
fi
fi
;;
esac
exit 0
|