HEX
Server: nginx/1.29.3
System: Linux mail.sarafai.ru 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: www-data (33)
PHP: 7.4.33
Disabled: dl,exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source
Upload Files
File: /var/lib/dpkg/info/erlang-base.prerm
#! /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... "
        if command -v systemctl >/dev/null && systemctl >/dev/null 2>&1 ; then
            # native service files:
            services1=$(systemctl list-unit-files '*.s*' | grep -P '(static|enabled)' | cut -f 1 -d ' ' | sed -e's:^:/lib/systemd/*/:')
            # generated service files:
            services2=$(systemctl list-unit-files '*.s*' | grep -P '(generated)' | cut -f 1 -d ' ' | sed -e's:^\(.*\)\..*:/etc/init.d/\1:')
            
            # find the packages they belong
            inits=$(dpkg -S $services1 $services2 2>/dev/null | sed -e's:/.*/::')
        else
            # find all init scripts and packages they belong
            inits=$(dpkg -S '/etc/init.d/*' 2>/dev/null | sed -e's:/etc/init.d/::')
        fi
        # 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"
            failed=""
            for service in $services ; do
                if command -v systemctl >/dev/null && systemctl >/dev/null 2>&1 ; then
                    echo -n "  $service: stopping... "
                    if systemctl stop $service 2>/dev/null
                    then
                        echo "done."
                    else
                        echo "failed. ($?)"
                        failed="$failed $service"
                    fi
                else
                    rl=$(runlevel | awk '{print $2}')
                    for service in $services ; do
                        if command -v invoke-rc.d >/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
                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.

# Automatically added by dh_installsystemd/13.11.4
if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -d /run/systemd/system ] ; then
	deb-systemd-invoke stop 'epmd.service' 'epmd.socket' >/dev/null || true
fi
# End automatically added section


case "$1" in
    remove|upgrade)
        echo -n "Killing epmd... "
        if command -v 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