Для взаимодействия лицензии с сервером потребуется пакет opensc и библиотека для ruToken которую можно скачать с нашего репозитория librtpkcs11ecp_2.3.0.0-1_amd64.deb
Установки библиотеки выполняется командой:
sudo dpkg -i librtpkcs11ecp_2.3.0.0-1_amd64.deb
В статье будет рассмотрено 2 основные проблемы которые могут возникнуть с ruTocken при работе сервера ACS:
- Не определяется ruToken в pkcs11-tool
- Лицензия определялась, но теряется в процессе работы
Пере опрос процессом acsd файла лицензии и ruToken происходит раз в 10 минут.
Не определяется ruToken в pkcs11-tool
После получения ruToken он может не определяться программным обеспечением pkcs11
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L Available slots: Slot 0 (0x0): (empty) Slot 1 (0x1): (empty) Slot 2 (0x2): (empty) Slot 3 (0x3): (empty) Slot 4 (0x4): (empty) Slot 5 (0x5): (empty) Slot 6 (0x6): (empty) Slot 7 (0x7): (empty) Slot 8 (0x8): (empty) Slot 9 (0x9): (empty) Slot 10 (0xa): (empty) Slot 11 (0xb): (empty) Slot 12 (0xc): (empty) Slot 13 (0xd): (empty) Slot 14 (0xe): (empty)
Но, при этом система его определяет и он отображается при выводе команды lsusb
lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 005: ID 0a89:0030 Aktiv Rutoken ECP Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
В таком случае необходимо:
- Попробовать пере подключить token в другой usb порт и проверить определился ли token в pkcs11.
- На сервере не запустился pcscd или он не установлен
проверить наличие или корректный запуск можно командойпри отсутствии пакета будет вывод:sudo service pcscd status
Для установки пакета нужно будет применить команду:sudo service pcscd status
при не запущенном процессе:sudo apt install pcscd -y
Для запуска процесса:pcscd.service - PC/SC Smart Card Daemon Loaded: loaded (/lib/systemd/system/pcscd.service; indirect; vendor preset: enabled) Active: inactive (dead) TriggeredBy: ● pcscd.socket Docs: man:pcscd(8)sudo service pcscd start
- Так же стоит проверить командой pcsc_scan
вывод token без проблемы:вывод token с проблемой:pcsc_scan Using reader plug'n play mechanism Scanning present readers... 0: Aktiv Rutoken ECP 00 00 Mon Jun 1 17:45:12 2026 Reader 0: Aktiv Rutoken ECP 00 00 Event number: 0 Card state: Card inserted, ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1 ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1 + TS = 3B --> Direct Convention + T0 = 8B, Y(1): 1000, K: 11 (historical bytes) TD(1) = 01 --> Y(i+1) = 0000, Protocol T = 1 ----- + Historical bytes: 52 75 74 6F 6B 65 6E 20 44 53 20 Category indicator byte: 52 (proprietary format) + TCK = C1 (correct checksum) Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1 Aktiv Rutoken ECP https://www.rutoken.ru/products/all/rutoken-ecp/ -
pcsc_scan Using reader plug'n play mechanism Scanning present readers... Waiting for the first reader... -
- Обратится в коммерческий отдел для устранения проблемы с аппаратным носителем ruToken
Лицензия определялась, но теряется в процессе работы
В первую очередь необходимо убедиться что аппаратных ресурсов сервера достаточно для корректной работы имеющегося числа CPE:
Для 10 000 терминалов: RAM: 8 Gb CPU: 4 ядра HDD: 70 Gb (минимум) Для 20 000 терминалов: RAM: 16 Gb CPU: 8 ядер HDD: 110 Gb (минимум)
Если при работе сервера, после увеличения количества терминалов возникает ситуация, когда лицензия теряется, но самопроизвольно восстанавливается или помогает пере подключение лицензии. И лог файл содержит такие сообщения
Лог файл можно прочитать только с root правами
cat /var/log/eltex-acs/acsd.log May 28 04:30:38.128 (7F9CC5618D80): check-license: license.bank is found May 28 04:30:38.432 (7F9CC5618D80): license: find token, slot 0/0: 'ruToken' May 28 04:30:38.432 (7F9CC5618D80): check-license: check token - found token with label 'ruToken' May 28 04:30:39.627 (7F9CC5618D80): license: check token result = 0 May 28 04:30:39.668 (7F9CC5618D80): license: check token result - WEXITED = true May 28 04:30:39.668 (7F9CC5618D80): license: check token result - pid = 2496814, code = 0, res = 0 May 28 04:30:39.668 (7F9CC5618D80): check-license: license.bank checked by ruToken successfully May 28 04:30:39.763 (7F9CC5618D80): check-license: bank 'All.17000' is loaded, filter = 'TRUE', limit = 17000 May 28 04:40:38.011 (7F9CC5618D80): license: set to demo mode! May 28 04:40:38.176 (7F9CC5618D80): check-license: bank 'demo' is loaded, filter = 'TRUE', limit = 100
При этом pkcs11 определяет ruToken
pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -L Available slots: Slot 0 (0x0): Aktiv Rutoken ECP 00 00 token label : eToken token manufacturer : Aktiv Co. token model : Rutoken ECP token flags : login required, rng, token initialized, PIN initialized hardware version : 67.4 firmware version : 32.2 serial num : 46344230 pin min/max : 6/32 Slot 1 (0x1): (empty) Slot 2 (0x2): (empty) Slot 3 (0x3): (empty) Slot 4 (0x4): (empty) Slot 5 (0x5): (empty) Slot 6 (0x6): (empty) Slot 7 (0x7): (empty) Slot 8 (0x8): (empty) Slot 9 (0x9): (empty) Slot 10 (0xa): (empty) Slot 11 (0xb): (empty) Slot 12 (0xc): (empty) Slot 13 (0xd): (empty) Slot 14 (0xe): (empty)
Проверьте нет ли высокой загруженности CPU в процессе работы сервера. Для этого создайте файл который будет записывать статус загруженности сервера в файл. Как пример содержания скрипта:
#! /bin/bash date '+%Y-%m-%d_%H:%M' >> /home/[user]/log_average.txt cat /proc/loadavg >> /home/[user]/log_average.txt free -h >> /home/[user]/log_average.txt [user] - заменить на имя пользователя в системе
после добавить права на исполнение этому файлу и добавить правило на применение скрипта в crontab. В примере срабатывание раз в 5 минут:
chmod +x [имя файла] crontab -e В конце файла добавить строку */5 * * * sh /home/[username]/[script]
вывод в файл скриптом из примера будет таким:
2026-05-28_10:58
3.00 2.84 2.56 4/756 2498412 значение нагрузки CPU нужны первые 2 значения (1 мин 5 мин 15 мин)
total used free shared buff/cache available значения загрузки ОЗУ
Mem: 15Gi 2.8Gi 10Gi 0.0Ki 2.7Gi 12Gi
Swap: 4.0Gi 311Mi 3.7Gi
Загрузка CPU:
- за минуту превышает 4 то CPU загружен на 100% в момент обращения к файлу
- за 5 минут превышает 4 то CPU сервера долгое время находится в загрузке 100% и большинство процессов стоит в ожидании обработки
Если загрузка за 5 мин начинает принимать значения выше 4 значит при этом pkcs11 может не успевает обработать запрос лицензии из-за чего лицензия теряется.
В основном проблема связанна с нагрузкой от mysql/mariadb. проверить это можно при помощи команды top.
Так как в многоядерных, много поточных системах top может выводится значения нагрузки на cpu у процесса выше 100%(связанно это с тем что одно ядро будет загружено полностью и занята часть нагрузкой на другом ядре)
для разделения при выводе top нажмите кнопки shift+I
Это позволит выводить усредненную нагрузку относительно всех ядер
Как решение это увеличение вычислительной мощности сервера, либо разнесение нагрузки на 2 сервера при помощи http балансировщика.

