BrokenPipeError — задания не передаются из CUPS в ПМ (Linux)
Симптомы
- Пользователь отправил задание на печать — в CUPS на АРМ статус
Job completed. - В очереди ПринтМенеджер и на МФУ задания нет.
- Служба клиента ПМ запущена
active (running). - В логах клиента ПМ:
BrokenPipeError: [Errno 32] Broken pipe
Причина
Клиент ПМ считывает задание из CUPS, но соединение обрывается до того, как задание передано в ПринтМенеджер. Типичные причины:
- Несовместимость ОС — после обновления Astra Linux (например, 1.7.7 → 1.7.9) изменилась версия Python или системных библиотек, с которыми работает клиент.
- Конфликт с CUPS — на АРМ установлен конкурирующий сервис печати (PrintXpert, SafeQ и др.).
- Ошибка конфигурации CUPS — в CUPS на АРМ присутствуют параметры, запрещающие отправку заданий или добавление принтеров.
Диагностика
Шаг 1. Проверить логи клиента ПМ:
sudo cat /var/log/printum/printmanager-client | grep -i "broken\|error\|pipe"
Зафиксировать полный текст ошибки — строки до и после BrokenPipeError.
Шаг 2. Проверить версию ОС:
cat /etc/os-release
Шаг 3. Проверить наличие конкурирующих сервисов печати:
systemctl list-units | grep -i "print\|cups\|spool"
Если есть активные сервисы кроме cupsd и printum-printmanager-client — вероятен конфликт.
Шаг 4. Проверить доступность CUPS:
lpstat -r
Норма: scheduler is running.
Решение
Переустановка клиента ПМ (первый шаг)
Переустановка не меняет настройки — settings.yml сохраняется.
Шаг 1. Остановить службу
sudo systemctl stop printum-printmanager-client.service
Шаг 2. Переустановить по инструкции из разделов Удаление клиента ПМ на Linux и Клиент ПМ на Linux — установка и проверка
Шаг 3. Проверить статус после установки
sudo systemctl status printum-printmanager-client.service
Конфликт с другим ПО управления печатью
Деактивировать конкурирующий сервис:
sudo systemctl stop <имя_сервиса>
sudo systemctl disable <имя_сервиса>
После этого перезапустить клиент ПМ и проверить передачу заданий.
После обновления ОС
Переустановка клиента ПМ с актуальным дистрибутивом решает проблему несовместимости. Если не помогло — эскалировать в ТП с логами и версией ОС.
Как проверить результат
sudo tail /var/log/printum/printmanager-client.log -f
Ошибок BrokenPipeError нет. Отправить тестовое задание — оно должно появиться в очереди ПринтМенеджер.
Когда эскалировать
- Переустановка не помогла.
- ОС обновлялась перед появлением проблемы.
- Конкурирующих сервисов нет, но ошибка сохраняется.
Приложить к заявке: файл логов Клиента ПМ с ошибкой, версию ОС (cat /etc/os-release), версию клиента ПМ, версию ПринтМенеджер.