У нас заметил примерно года полтора назад начал проявляться такой глюк: при запуске sb_pilot на экране кассы "вдруг" возникает надпись "Welcome to UKM terminal", не всегда, но на сравнительно медленных кассах (например, старых битлах с ОЗУ 64 МБ - оказалось, есть и такие, перед новым годом накинули на них ДИММов 128-МБайтных - пошустрее стало, 49sp3).
Кассирки упорно не могли вспомнить, какие же именно действия приводили к такому поведению. В итоге выяснилось (случайно воспроизвёл на стенде), что такое возникает, когда кассир прокатала карту, мееееееедлено начал запускаться процесс обслуживания sb_pilot, на экране ещё ничего не произошло, и тут кассир ещё раз прокатывает карту в кард-ридере! После такого, ессно, в буфере клавиатуры оказывается мусор, который и приводит к подобному ступору кассы. Выйти из которого можно, несколько десятков раз нажав на ШТРИХ-КОД.
На клавиатурах PKBST-50 (Toshiba) скан-код клавиши "Энтер" в линуксе находится на клавише "[/X" (в нижнем ряду посередине), подобное двойное прокатывание карты на такой клавиатуре может привести к сбросу подкладываемой к sb_pilot раскладки клавиатуры, где действие "ВВОД" интерпретируется другой клавишей (у нас она назначена на ВВОД ШК, чтобы кассирам везде было одинаково). В этом случае действие "ВВОД" осуществляется по нажатию клавиши "[/X", а "СБРОС" - на крайней левой клавише верхнего ряда (не помню, ЛАТ там или РУС).
Если покупатель ушёл, а sb_pilot упорно просит ввести карту и на клавишу "СБРОС" не реагирует, доводим sb_pilot до состояния "ВВЕСТИ ВРУЧНУЮ", вводим до упора какую-нибудь кривую последовательность - проще всего "121212..." до упора, затем "ВВОД" - и sb_pilot с ошибкой возвращает управление в ukmclient (может потребоваться от 1 до 3 попыток), где можно аннулировать чек или оплатить другим средством оплаты.
Если вообще ничего не помогает - коннектимся по ssh, затем выполняем команды:
ps -e|grep nix
- выведет строку типа "xxxx upnixmn.out", где xxxx - это PID процесса upnixmn.out - собственно он и является главным исполняемым файлом клиента авторизации СБРФ, sb_pilot лишь его обёртка. Теперь надо убить этот процесс:
kill xxxx
и происходит возврат в ukmclient с ошибкой.