#!/bin/sh set -e # A node left running once its package is gone serves from deleted code, and # keeps writing bytecode into the shared venv. Every instance stops here: the # system ones, and the user service in each running user manager. Not on # upgrade: the postinst restarts the node onto new code. stop_user_nodes() { for bus in /run/user/*/systemd/private; do [ -S "$bus" ] || continue uid=$(basename "$(dirname "$(dirname "$bus")")") user=$(id -nu "$uid" 2>/dev/null) || continue systemctl --user -M "$user@" stop meshbay-node.service 2>/dev/null || true done } case "$1" in remove|deconfigure) if [ -d /run/systemd/system ]; then systemctl stop 'meshbay-node@*.service' 2>/dev/null || true stop_user_nodes fi ;; esac # The node's code lives in meshbay-common's venv, and meshbay-common's own # cleanup runs only after this package is gone: the bytecode compiled next to # it is removed here, or dpkg cannot remove the directories it sits in. case "$1" in remove|upgrade|deconfigure) find /opt/meshbay-common/venv/lib/python3.*/site-packages/meshbay_node \ -depth -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true ;; esac #DEBHELPER#