Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В настройках на кассе необходимо скопировать скрипт запуска RDP start_freerdp.sh и сделать из него свой, подобный, например:

Блок кода
languagescalabash
themeMidnight
linenumbersRDarktrue
#!/bin/bash

MINT_DIR="/home/ukm5/mint/bin"                          # Папка исполняемых файлов кассы УКМ 5
NAME=$(tail $MINT_DIR/.ext_app)                         # Имя скрипта
LOGFILE=$MINT_DIR/logs/service-$NAME.log                # Лог-файл
LOGIN='Admin'                                           # Логин пользователя Windows
PASSWORD='One1'                                         # Пароль пользователя Windows
IP_ADDR=''                                              # IP-адрес или доменное имя подключения RDP
PORT='3389'                                             # Порт подключения RDP
RDPFILE='/home/ukm5/mint/bin/ext_apps/1c.rdp'           # Файл подключения RDP с Windows RDP-фермы
#COM_01='/serial:COM1,/dev/ttyS0,Serial,permissive'     # Пример проброса COM-порта
#COM_07='/serial:COM7,/dev/ttyACM0,Serial,permissive'   # Пример проброса USB-COM-порта (работает на основании драйвера в Ubuntu, сканер работает с ограничениями)
COM_1=''                                                # COM-порты
COM_2=''                                                # 
COM_3=''                                                # 
COM_4=''                                                # 
COM_5=''                                                # 
COM_6=''                                                # 
COM_7=''                                                # 
COM_8=''                                                # 
COM_9=''                                                # 
#PRINTER_00='/printer'                                  # 
PRINTER=''                                              # Принтер


result()                                                # Функция выхода из скрипта при критической ошибке запуска
{
  if [ $? -ne 0 ]; then
    echo "ERROR"
    exit 1
  fi
}

result_with_restart()                                   # Функция перезапуска кассового модуля при завершении скрипта с ошибкой
{
  if [ $? -ne 0 ]; then
    echo "ERROR"

    echo
    echo "==== starting mint service"
    systemctl start mint
    result
    echo "==== mint service started"
    
    echo
    echo "==== starting UI"
    export DISPLAY=:0
    su ukm5 -c "$MINT_DIR/start_chrome.sh >/dev/null 2>&1 &"
    echo "==== UI started"

    exit 1
  fi
}

echo "==== $0 started $(date) ==========="              # Запуск RDP

echo
echo "==== stopping mint service"                       # Останавливаем mint
systemctl stop mint
result_with_restart
echo "==== mint service stopped"

echo
echo "==== starting freerdp"                            # Запускаем RDP
export DISPLAY=:0
#/opt/freerdp-nightly/bin/xfreerdp /u:$LOGIN /p:$PASSWORD /v:$IP_ADDR:$PORT /cert-ignore $COM_1 $COM_2 $COM_3 $COM_4 $COM_5 $COM_6 $COM_7 $COM_8 $COM_9 $PRINTER /multitouch /f +compression >> $LOGFILE
/opt/freerdp-nightly/bin/xfreerdp $RDPFILE /u:$LOGIN /p:$PASSWORD /cert-ignore >> $LOGFILE #без multitouch - 1С с ними не работает
result_with_restart
echo "==== UI started"

echo
echo "==== starting mint service"                       # Запускаем mint после выхода/дисконнекта RDP
systemctl start mint
result
echo "==== mint service started"


echo
echo "==== $0 completed $(date) ========="

exit 0

Написание скриптов запуска внешних приложений полностью возлагается на пользователя. Если после завершения работы кассового модуля и завершения работы пользовательского скрипта необходимо вновь возобновить работу кассового модуля, то в пользовательском скрипте должны быть прописаны следующие команды:

Блок кода
languagescala
themeRDark
titleФункция: необходимо разместить в начале скрипта
result()
{
if [ $? -ne 0 ]; then
echo "ERROR"
exit 1
fi
}

result_with_restart()
{
if [ $? -ne 0 ]; then
echo "ERROR"

echo
echo "==== starting mint service"
systemctl start mint
result
echo "==== mint service started"

echo
echo "==== starting UI"
export DISPLAY=:0
su ukm5 -c "$MINT_DIR/start_chrome.sh >/dev/null 2>&1 &"
echo "==== UI started"

exit 1
fi
}
Блок кода
languagescala
themeMidnight
titleФункция: необходимо разместить в конце скрипта
result_with_restart
echo "==== UI started"

echo
echo "==== starting mint service"
systemctl start mint
result
echo "==== mint service started"


echo
echo "==== $0 completed $(date) ========="

exit 0

Чтобы работа и ошибки самого скрипта отразились в лог-файле application.log, надо добавить в начало скрипта следующий фрагмент:

Блок кода
languagescala
themeRDark
MINT_DIR="/home/ukm5/mint/bin" NAME=$(tail $MINT_DIR/.ext_app) LOGFILE=$MINT_DIR/logs/service-$NAME.log

Также, в строке каждой команды, от которой требуется вывод сообщения в лог, необходимо добавить запись >> $LOGFILE.

Логи пишутся в папку /home/ukm5/mint/bin/logs/расположенную на кассе: лог запуска скрипта фиксируется в файле application.log; работа и ошибки самого скрипта – в файле service-имя_скрипта.log.

Приложение xfreerdp позволяет подключаться по разным параметрам; также есть возможность использовать файл формата .rdp.

Минимальный состав параметров для подключения к RDP-ферме
Количество бит на цвет – 16 или 32session bpp:i:32
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull address:s:example.domain.ru
Минимальный состав параметров для подключения к RDP RemoteApplication-ферме
Количество бит на цвет - 16 или 32session bpp:i:32
Включить режим открытия удалённого приложенияremoteapplicationmode:i:1
Порт подключения к серверу RDPserver port:i:3389
Включить сглаживание скриптовallow font smoothing:i:1
IP- или доменный адрес сервера RDPfull address:s:example.domain.ru
Полный адрес расположения удалённого приложенияremoteapplicationprogram:s:C:\Program Files (x86)\1cv8\common\1cestart.exe
Имя удалённого приложенияremoteapplicationname:s:1C V8_DEV_XXX
Строка запуска удалённого приложения с параметрами

remoteapplicationcmdline:s:ENTERPRISE /S"DEV-16-AS-001\V8_DEV_XXX"/RunModeOrdinaryApplication

Название коллекции удалённых приложенийloadbalanceinfo:s:tsv://MS Terminal Services Plugin.1.sample

Руководство по работе с xfreerdp и описание всех параметров располагается здесь: https://wiki.yola.ru/_media/freerdp/freerdp-user-manual.pdf.

Описание всех параметров файла формата .rdp можно найти по адресу: https://docs.microsoft.com/ru-ru/windows-server/remote/remote-desktop-services/clients/rdp-files.