Hiddify uninstall.sh виснет на mariadb purge#
При попытке снести Hiddify через bash uninstall.sh purge процесс виснет на стадии mariadb-server.postrm и не двигается. SSH-сессия молчит, в логе ничего нового. Если запускать через пайп в tail - можно вообще не заметить, что висит.
Симптомы#
uninstall.sh purgeстоит минутами/часами на одной точке.pgrep -af "apt|dpkg|mariadb"показывает живые процессы apt → dpkg → debconf → postrm.- Директория
/opt/hiddify-manager/уже пустая (uninstall.sh успел сделатьrm -rfдо зависания), повисает именно хвост.
Почему это происходит#
В postrm-скрипте mariadb-server есть строка db_input high "mariadb-server-*/postrm_remove_databases" && db_go - вопрос "удалить ли данные БД?". Debconf-frontend приоритета high пытается показать prompt через whiptail, для этого ему нужен /dev/tty. Если SSH запущен без -t или stdout запайплен в tail/tee - prompt не может отрисоваться и висит бесконечно. Флаг apt -y это не покрывает: он про apt, а не про debconf.
Что делать#
Профилактика#
Запускать снос с TTY и без пайпов:
Или предзаполнить ответ debconf ДО запуска uninstall:
echo "mariadb-server-10.6 mariadb-server-10.6/postrm_remove_databases boolean true" | debconf-set-selections
Лечение уже зависшего uninstall#
# найти и прибить дерево процессов
pgrep -af "apt|dpkg|mariadb-server.*postrm"
kill -9 <pids>
# снять dpkg-локи
rm -f /var/lib/dpkg/lock-frontend /var/lib/dpkg/lock /var/cache/apt/archives/lock
# preseed ответа и догнать noninteractive
echo "mariadb-server-10.6 mariadb-server-10.6/postrm_remove_databases boolean true" | debconf-set-selections
DEBIAN_FRONTEND=noninteractive dpkg --configure -a
DEBIAN_FRONTEND=noninteractive apt-get purge -y mariadb-server-10.6 mariadb-server-core-10.6 mariadb-common
DEBIAN_FRONTEND=noninteractive apt-get autoremove -y
Если не помогло#
Перед сносом всегда сначала забрать снапшот данных: /opt/hiddify-manager/current.json содержит полную копию (users, domains, конфиг), /opt/hiddify-manager/hiddify-panel/backup/ - бэкапы панели. Если БД уже снесена без бэкапа - восстанавливать настройки придется руками.
Сторонние сервисы вроде mihomo живут в /etc/mihomo и /usr/local/bin/mihomo отдельно - uninstall.sh их не трогает.
Источники#
На основе опыта автора hiddify-faq.
Не помогло или есть уточняющий вопрос - заходите в русское сообщество @hiddify_rus.