Удаление сервера 1С:Предприятие в Linux без остатков

· 9 мин

Содержание

Чтобы удалить сервер 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 тестируют. Удаляется только версия, которая не нужна.

  1. Убедитесь, что служба удаляемой версии остановлена, а рабочая версия слушает порт 1540: ss -tlnp | grep 1540.
  2. Найдите пакеты именно этой версии: dpkg -l | grep 1c-enterprise-8.3.24.
  3. Удалите их по маске с номером: sudo apt purge '1c-enterprise-8.3.24*'.
  4. Удалите каталог версии: sudo rm -rf /opt/1cv8/x86_64/8.3.24.XXXX.
  5. Отключите юнит этой версии: 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.

Диагностика: выберите симптом

Частые вопросы

Удалятся ли базы данных вместе с сервером 1С?
Нет. Базы в PostgreSQL или MS SQL остаются в СУБД. Удаление сервера 1С стирает только реестр кластера — список баз, который придётся заново заполнить на новом сервере.
Можно ли удалить сервер 1С, не удаляя PostgreSQL?
Да. СУБД — отдельный продукт со своими пакетами и службой. Её удаляют отдельно и только если базы перенесены или больше не нужны.
Нужно ли удалять сервер перед установкой новой версии?
Нет. Новые версии ставятся рядом со старыми в свой каталог. Старую версию удаляют после того, как новая проверена и базы работают на ней.
Сохранится ли лицензия, если переустановить сервер на той же машине?
Да, если не трогать каталог /var/1C/licenses и не менять оборудование. При смене железа программную лицензию придётся активировать заново.
Как удалить сервер 1С, установленный в Docker?
Остановите и удалите контейнер (docker rm -f), затем образ (docker rmi). Данные кластера и лицензии лежат в подключённых томах — удалите их отдельно, если они не нужны.