2
# prerm script for erlang-base
4
# see: dh_installdeb(1)
8
# summary of how this script can be called:
10
# * <old-prerm> upgrade <new-version>
11
# * <new-prerm> failed-upgrade <old-version>
12
# * <conflictor's prerm> remove in-favour <package> <new version>
13
# * <deconfigured's prerm> deconfigure in-favour <package being installed> <version> \
14
# removing <conflicting package> <version>
15
# for details, see /usr/share/doc/debian-policy/
19
echo -n "Searching for services which depend on erlang and should be stopped..."
20
# find all init scripts and packages they belong
21
inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::')
22
# filter the list of the packages
23
packs=$(echo $inits | sed -e's/:[[:space:]]\+[^[:space:]]*//g' | sed -e's/ /\n/g' | sort -u)
24
# find packages, which depend on erlang
25
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}}')
26
# construct services list from the packages
29
service=$(echo $inits | sed -e's/\([^:]\) /\1\n/g' | awk "/^$p:/ {print \$2}")
30
services="$services $service"
32
services=$(echo $services | tr '\n' ' ' | sed -e's/\(^[[:space:]]*\|[[:space:]]*$\)//g')
34
if [ -z "$services" ] ; then
37
echo "found: $services."
38
echo "Stopping services which depend on erlang"
39
rl=$(runlevel | awk '{print $2}')
40
for service in $services ; do
41
if [ -f /usr/share/file-rc/rc -o -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then
42
idl=$(filerc $rl $service)
44
idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
46
if [ -n "$idl" ] ; then
47
echo -n " $service: stopping..."
48
$idl stop > /dev/null 2>&1 || true
54
echo -n "Killing epmd..."
55
pid=$(ps ax | grep epmd | grep -v grep | awk '//{print $1}' | head -1)
56
if [ -z "$pid" ] ; then
57
echo "it is not running."
59
if kill $pid 2>/dev/null ; then
67
failed-upgrade|deconfigure)
71
echo "prerm called with unknown argument \`$1'" >&2
76
# dh_installdeb will replace this with shell code automatically
77
# generated by other debhelper scripts.