Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

MODULE_DUPLICATE_LOAD IP-Телефония и СКУД

Asterisk: loader.c Module res_pjsip.so already loaded, ignoring duplicate

Обновлено: 24.08.2026 · Официальная документация ↗
  • Предупреждение в логах: WARNING: loader.c: Module 'res_pjsip.so' already loaded, ignoring duplicate.
  • Увеличение времени старта Asterisk при инициализации модулей.
  • Потенциальные конфликты порядка инициализации зависимых библиотек PJProject.

1. Аудит конфигурационного файла /etc/asterisk/modules.conf

Откройте modules.conf и найдите повторяющиеся строки вызова модулей:

[modules]
autoload = yes

; Ошибка: одновременный preload и последующий load при включенном autoload
preload => res_pjsip.so
load => res_pjsip.so  ; <-- УДАЛИТЬ ДУБЛИКАТ

2. Оптимизация схемы загрузки модулей

Используйте чистую структуру конфигурации:

[modules]
autoload = yes

; Предварительная загрузка только строго критичных компонентов
preload => res_pjproject.so
preload => res_pjsip.so

; Явное отключение ненужных драйверов
noload => chan_sip.so
noload => chan_skinny.so
noload => chan_unistim.so
noload => chan_mgcp.so

3. Проверка загруженных модулей в Asterisk CLI

asterisk -rx "module show like res_pjsip"

Убедитесь, что каждый модуль присутствует в списке ровно один раз со статусом Running.

4. Проверка прав и символических ссылок в /usr/lib/asterisk/modules/

ls -la /usr/lib/asterisk/modules/ | grep res_pjsip

Убедитесь в отсутствии дубликатов модулей с разными именами (например, кастомных бэкапов res_pjsip.so.bak внутри каталога модулей).

💡 Практика специалистов: Никогда не храните резервные копии скомпилированных файлов (.bak, .old) прямо в каталоге /usr/lib/asterisk/modules/ — при включенном autoload ядро Asterisk попытается загрузить их как валидные модули.

Частые вопросы (FAQ)

Приводит ли предупреждение о дубликате модуля к сбою PBX?

Нет, Asterisk перехватывает повторную попытку загрузки и безопасно игнорирует ее. Однако это признак некорректной конфигурации modules.conf, способной повлиять на порядок инициализации зависимостей.

Зачем нужна директива preload в modules.conf?

Директива preload форсирует загрузку модуля до инициализации общего пула autoload, что критично для библиотек crypto, логирования и сетевых ядер.

Что произойдет, если установить autoload = no?

Asterisk загрузит исключительно те модули, которые явно указаны через директиву load =>. При пропуске хотя бы одной зависимости запуск завершится ошибкой.

Как выгрузить конкретный модуль из памяти на лету?

Выполните в CLI команду: module unload &lt;имя_модуля.so&gt; (например, module unload chan_alsa.so).

Полезные материалы
Рекомендуем