Удаление сервера 1С:Предприятие в Linux без остатков
Содержание
Чтобы удалить сервер 1С с Linux, остановите службу srv1cv8, удалите пакеты 1c-enterprise* через apt purge или dnf remove, затем вручную сотрите каталоги /opt/1cv8 (или /opt/1C), данные кластера в /home/usr1cv8/.1cv8 и при необходимости пользователя usr1cv8. Лицензии лежат отдельно, в /var/1C/licenses, и их судьбу решайте до удаления.
Менеджер пакетов убирает только бинарники. Служба, данные кластера, файлы лицензий, строки в конфиге Apache остаются и потом мешают поставить новую версию: порт 1540 занят, служба падает, Apache не стартует. Ниже порядок, после которого сервер 1С:Предприятие уходит из Ubuntu, Debian или CentOS полностью.
1. Подготовка: копии баз и остановка служб сервера 1С
Сначала решите, что вы удаляете. Сервер 1С — это только программа. Сами информационные базы чаще всего живут в PostgreSQL или MS SQL, и удаление 1С их не трогает. Файловые базы тоже никуда не денутся, если вы не сотрёте их каталог руками.
Что сделать до остановки:
- 💾 Выгрузите каждую важную базу в
.dtчерез Конфигуратор (Администрирование → Выгрузить информационную базу). Это страховка на случай, если СУБД тоже будете сносить. - 📋 Сохраните список баз кластера. Он лежит в файле
1CV8Clst.lstвнутри каталогаreg_1541. Пригодится, чтобы зарегистрировать базы на новом сервере с теми же параметрами. - 🔑 Скопируйте файлы программных лицензий из
/var/1C/licenses/— подробнее в разделе 5. - 🧾 Запишите точный номер установленной версии, например
8.3.22.1709. От него зависят имена служб и пакетов.
# Копия данных кластера и лицензий в домашний каталог администратора
sudo tar czf ~/1c-backup-$(date +%F).tar.gz \
/home/usr1cv8/.1cv8 /var/1C/licenses 2>/dev/null
Остановка службы сразу обрывает все сеансы пользователей. Несохранённые документы пропадут, фоновые и регламентные задания прервутся. Предупредите сотрудников и делайте это вне рабочего времени.
Как остановить службу
Имя службы зависит от того, как ставилась платформа.
Версии до 8.3.21, старый init-скрипт:
sudo /etc/init.d/srv1cv83 stop
# Debian / Ubuntu — убрать из автозапуска
sudo update-rc.d -f srv1cv83 remove
# CentOS / RHEL
sudo chkconfig --del srv1cv83
Новые версии, юнит systemd с номером версии в имени:
# Найти точное имя службы
systemctl list-units --all | grep -E 'srv1cv8|ras'
# Остановить и убрать из автозапуска
sudo systemctl disable --now srv1cv8-8.3.22.1709@default
sudo systemctl disable --now ras-8.3.22.1709@default # если поднимали RAS
Подставьте свой номер версии. Если служба RAS не настраивалась, вторая команда просто сообщит, что юнит не найден.
2. Удаление пакетов сервера 1С через apt, dnf или деинсталлятор
Сначала посмотрите, что установлено. Пакеты платформы начинаются с 1c-enterprise.
# Ubuntu / Debian
dpkg -l | grep 1c-enterprise
# CentOS / RHEL / Rocky / AlmaLinux
rpm -qa | grep 1c-enterprise
В старых версиях имена выглядят как 1c-enterprise83-server, 1c-enterprise83-common, 1c-enterprise83-ws, 1c-enterprise83-crs плюс пакеты с суффиксом -nls. В новых номер версии входит в имя: 1c-enterprise-8.3.22.1709-server и т. п.
Ubuntu и Debian
sudo apt purge '1c-enterprise*'
sudo apt autoremove
purge удаляет пакет вместе с его конфигами, remove оставляет конфиги на диске. Для полной очистки нужен именно purge. Кавычки вокруг маски обязательны, иначе оболочка попробует раскрыть звёздочку сама.
CentOS, RHEL и их клоны
sudo dnf remove '1c-enterprise*'
# на CentOS 7
sudo yum remove '1c-enterprise*'
Если ставили единым установщиком (.run)
Начиная с 8.3.20 платформу ставят одним файлом setup-full-...-x86_64.run. Такой установщик кладёт деинсталлятор в каталог версии: /opt/1cv8/x86_64/<версия>/. Посмотрите содержимое каталога и запустите файл, имя которого начинается с uninstaller:
ls /opt/1cv8/x86_64/8.3.22.1709/ | grep -i uninst
sudo /opt/1cv8/x86_64/8.3.22.1709/uninstaller-full
Деинсталлятор работает в графическом или текстовом режиме и убирает компоненты, которые ставил установщик. Если его в каталоге нет, удаляйте пакеты через apt или dnf, как выше: установщик всё равно регистрирует их в системе.
| Способ установки | Чем удалять | Что останется |
|---|---|---|
| Пакеты .deb / .rpm (до 8.3.20) | apt purge / dnf remove | данные кластера, лицензии, юзер usr1cv8 |
| Единый установщик .run | деинсталлятор из каталога версии или менеджер пакетов | то же + юнит systemd, если его подключали через systemctl link |
| Распаковка вручную (редко) | только удаление каталога | всё, что настраивали руками |
3. Ручная очистка каталогов после удаления пакетов
После пакетного удаления пройдитесь по каталогам. Сначала посмотрите, что лежит, и только потом удаляйте.
ls -la /opt/1cv8 /opt/1C 2>/dev/null
ls -la /home/usr1cv8/.1cv8 2>/dev/null
Где обычно остаются файлы:
| Путь | Что там |
|---|---|
/opt/1cv8/ | платформа новых версий, общий каталог conf с conf.cfg и logcfg.xml |
/opt/1C/v8.3/ | платформа старых версий |
/home/usr1cv8/.1cv8/1C/1cv8/ | данные кластера: reg_1541, сеансовые данные, журналы регистрации |
/etc/sysconfig/srv1cv83, /etc/default/srv1cv83 | настройки старого init-скрипта |
/etc/systemd/system/srv1cv8-* | ссылки на юниты новых версий |
/var/log/1c, каталог из logcfg.xml | технологический журнал, если включали |
/tmp, /var/tmp | временные файлы рабочих процессов |
Удаление:
sudo rm -rf /opt/1cv8 /opt/1C
sudo rm -rf /home/usr1cv8/.1cv8
sudo rm -f /etc/sysconfig/srv1cv83 /etc/default/srv1cv83 /etc/init.d/srv1cv83
sudo systemctl daemon-reload
sudo systemctl reset-failed
В каталоге reg_1541 лежат журналы регистрации баз (папки с GUID). Если журналы нужны для разбора или аудита, скопируйте их раньше, чем выполните rm -rf.
Если на этом же компьютере остаётся клиент 1С (тонкий или толстый), не удаляйте /opt/1cv8 целиком. Удалите только серверные пакеты (*-server, *-ws, *-crs) и каталог данных кластера.
Хвосты в Apache
Если базы публиковались на веб-сервере, в конфиге Apache остались строки LoadModule _1cws_module с путём к wsap24.so и блоки <Directory> / Alias для каждой публикации. Модуль удалён, а строки нет — Apache после перезапуска не поднимется.
sudo grep -rn "wsap" /etc/apache2 /etc/httpd 2>/dev/null
Удалите или закомментируйте найденные строки, затем проверьте конфиг командой apachectl configtest и перезапустите Apache. Каталоги публикаций (обычно в /var/www/) с файлами default.vrd удалите вручную.
4. Системный пользователь usr1cv8 и группа grp1cv8
Под пользователем usr1cv8 работает служба сервера. Он создаётся при установке и при удалении пакетов, как правило, остаётся. Если сервер 1С на этой машине больше не нужен, удалите его.
# Убедиться, что процессов от его имени нет
ps -u usr1cv8
# Удалить пользователя вместе с домашним каталогом
sudo userdel -r usr1cv8
# Удалить группу, если осталась
getent group grp1cv8 && sudo groupdel grp1cv8
Если userdel пишет, что пользователь занят процессом, значит, служба не остановлена или висит рабочий процесс. Вернитесь к разделу 1.
Если собираетесь сразу ставить другую версию сервера, пользователя можно оставить. Новый установщик подхватит его, а права на каталоги не придётся настраивать заново.
Проверьте, не выдавались ли usr1cv8 особые права: строки в /etc/sudoers.d/, членство в других группах, задания crontab -u usr1cv8 -l. Их удаляют руками.
5. Лицензии и ключи защиты HASP
Программные лицензии 1С на Linux хранятся в виде файлов .lic в каталоге /var/1C/licenses/. Пакетный менеджер их не трогает.
Варианты действий:
- 🔁 Переносите сервер на другую машину. Скопируйте файлы, но учтите: программная лицензия привязана к параметрам оборудования. На новом железе её придётся активировать заново, используя резервные пин-коды из комплекта.
- 🗑 Удаляете окончательно. Сначала сделайте копию, потом удалите каталог:
sudo rm -rf /var/1C/licenses. - 🧪 Переустанавливаете ту же версию на той же машине. Не трогайте каталог совсем — лицензия подхватится.
Не удаляйте файлы лицензий без копии. Количество активаций по пин-кодам ограничено. Потерянный файл на том же оборудовании иногда проще восстановить из копии, чем расходовать резервный пин-код.
Драйвер аппаратного ключа
Если сервер защищался USB-ключом HASP, на машине работает демон aksusbd (иногда в составе пакета haspd). После удаления 1С он больше не нужен.
systemctl status aksusbd
sudo systemctl disable --now aksusbd
# Debian / Ubuntu
dpkg -l | grep -E 'aksusbd|haspd'
sudo apt purge aksusbd # подставьте имя из вывода dpkg
# CentOS / RHEL
rpm -qa | grep -E 'aksusbd|haspd'
Сам ключ извлеките из порта и сохраните. Он нужен для установки на другом сервере.
6. Как удалить одну версию сервера 1С и оставить другую
На одном сервере часто стоят две-три версии платформы. Например, 8.3.22 работает, а 8.3.24 тестируют. Удаляется только версия, которая не нужна.
- Убедитесь, что служба удаляемой версии остановлена, а рабочая версия слушает порт 1540:
ss -tlnp | grep 1540. - Найдите пакеты именно этой версии:
dpkg -l | grep 1c-enterprise-8.3.24. - Удалите их по маске с номером:
sudo apt purge '1c-enterprise-8.3.24*'. - Удалите каталог версии:
sudo rm -rf /opt/1cv8/x86_64/8.3.24.XXXX. - Отключите юнит этой версии:
sudo systemctl disable srv1cv8-8.3.24.XXXX@default.
Каталог данных кластера /home/usr1cv8/.1cv8 в этом сценарии не трогайте: его использует оставшаяся служба.
Если две версии запускались на разных портах (например, вторая на 2540), то и каталоги данных у них могут быть разные. Посмотрите параметры запуска в юните: systemctl cat srv1cv8-8.3.24.XXXX@default. Там указаны порт и каталог данных.
Для старых пакетов с 83 в имени маска по версии не сработает: пакеты разных версий там называются одинаково, и в системе может стоять только одна версия.
7. Проверка, что сервер 1С полностью удалён, и разбор ошибок
Пройдитесь по списку команд. Каждая должна вернуть пустой вывод.
# Пакеты
dpkg -l | grep 1c-enterprise # или rpm -qa | grep 1c-enterprise
# Процессы
ps aux | grep -E 'ragent|rmngr|rphost|ras' | grep -v grep
# Порты кластера и RAS
ss -tlnp | grep -E ':(1540|1541|1545|15[6-9][0-9])\b'
# Службы
systemctl list-units --all | grep -E 'srv1cv8|ras-8'
# Пользователь
id usr1cv8
# Каталоги
ls /opt/1cv8 /opt/1C /var/1C 2>/dev/null
Если открывали порты в брандмауэре, закройте их. Для ufw посмотрите sudo ufw status numbered и удалите правила для 1540, 1541 и диапазона 1560–1591. Для firewalld — sudo firewall-cmd --list-all.
sudo dpkg --configure -a, затем повторите sudo apt purge '1c-enterprise*'./etc/init.d/srv1cv83. Если нет — восстановите пустую заглушку или поправьте скрипт в /var/lib/dpkg/info/ для этого пакета, затем повторите удаление.ss -tlnp | grep 1540, завершите по PID командой sudo kill. Перед этим убедитесь, что это не служба другой версии, которую вы оставляете.sudo systemctl disable с полным именем службы, затем sudo systemctl daemon-reload и sudo systemctl reset-failed.ps -u usr1cv8, остановите службу или завершите процесс, повторите удаление.LoadModule _1cws_module с путём к удалённому файлу. Найдите строку через grep -rn wsap /etc/apache2 /etc/httpd и удалите её.Частые вопросы
Удалятся ли базы данных вместе с сервером 1С?
Можно ли удалить сервер 1С, не удаляя PostgreSQL?
Нужно ли удалять сервер перед установкой новой версии?
Сохранится ли лицензия, если переустановить сервер на той же машине?
/var/1C/licenses и не менять оборудование. При смене железа программную лицензию придётся активировать заново.Как удалить сервер 1С, установленный в Docker?
docker rm -f), затем образ (docker rmi). Данные кластера и лицензии лежат в подключённых томах — удалите их отдельно, если они не нужны.