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

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

Ключ

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

...

Блок кода
languagescala
themeRDark
launcherPossition = 1400	# Очередность расположения кнопки на экране

name = "Внешние приложения"			# Надпись на кнопке (может быть длиной от 1 до 30 символов)

          app_list : [
            {
              name : "cutecom", 					# Название кнопки на экране "Внешние приложения"
              command : """start_cutecom.sh""" 		# Полное имя скрипта с его расположением (при параметре isExclusive = true указываем только название скрипта в папке /home/ukm5/mint/bin/ext_apps/)
			  isExclusive = true 					# Запуск скрипта с выключением кассового модуля и последующим его запуском (по умолчанию – false, если отсутствует - тоже false)
            }
            {
              name : "xterm", 						# Название кнопки на экране "Внешние приложения"
              command : """/home/ukm5/mint/bin/ext_apps/start_xterm.sh""" 	# Полное имя скрипта с его расположением
            }
			{
              name : "freerdp", 					# Название кнопки на экране "Внешние приложения"
              command : """start_xterm.sh""" 		# Полное имя скрипта с его расположением (при параметре isExclusive = true указываем только название скрипта в папке /home/ukm5/mint/bin/ext_apps/)
			  isExclusive = true					# Запуск скрипта с выключением кассового модуля и последующим его запуском (по умолчанию – false, если отсутствует – тоже false)
            }
          ]

В файле external_apps.conf (applications\external_apps\external_apps.conf) задаются только названия кнопок, адреса запуска скриптов, а также дополнительный параметр остановки кассового модуля. Непосредственно скрипты запуска внешних приложений располагаются на самой кассе.

На кассе можно пользоваться следующими горячими клавишами:

  • Right ALT+TAB – переключение между открытыми приложениями;
  • Right ALT+F4 – закрытие активного приложения в фокусе;
  • Right Alt-Space – открытие пользовательского меню для активного окна.
  • Список остальных горячих клавиш можно найти здесь.

Настройка и запуск протокола RDP (для доступа к серверу Windows)

Успешный выход во внешние системы на базе ОС Windows, осуществляемый через протокол RDP, требует выполнения трех обязательных условий:

      1. На сервере Windows должен быть настроен доступ по RDP. Осуществление этих настроек полностью возлагается на пользователя и в данном руководстве не описано. 

...

Блок кода
languagescala
themeRDark
{
  name : "FreeRDP", # НаименованиеНазвание кнопки вона Внешнихэкране приложениях"Внешние приложения"
  command : """start_freerdp.sh""" # Название скрипта в папке /home/ukm5/mint/bin/ext_apps/ на кассе
  isExclusive = true # Запуск скрипта с выключением кассового модуля и последующим его запуском
}

...

В файле external_apps.conf (applications\external_apps\external_apps.conf) на кассовом сервере задается только наименование кнопки в разделе кассового меню Внешние приложения, а также название скрипта запуска приложения, который будет размещен в папке / \home/\ukm5/\mint/\bin/\ext_apps/\ непосредственно на кассе. Кроме того, здесь же указывается  дополнительный параметр остановки кассового модуля (когда запуск скрипта производится с выключением кассового модуля и последующим его запуском вновь). 

...

Лог запуска пишется в файл /home/ukm5/mint/bin/logs/application.log. Живет на касссе
работа и ошибки самого скрипта – в скрипта будет фиксироваться в файле application.log (home\ukm5\mint\bin\logs\application.log), расположенном на кассе. Работа скрипта и возможные ошибки в ее ходе будут отражены в файле service-имя_скрипта.log.

...

 (home\ukm5\mint\bin\logs\service-имя_скрипта.log), также расположенному на кассе.

Якорь
2
2
Настройки на кассе

Непосредственно сам файл скрипта необходимо разместить на кассе в папке \home\ukm5\mint\bin\ext_apps\ в файле формата BASH или SHELL, с правами запуска 766Написание скриптов запуска внешних приложений полностью возлагается на пользователя. Все внешние скрипты должны располагаться в папке 

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

Блок кода
languagebash
themeMidnight
linenumberstrue
#!/bin/bash

MINT_DIR="/home/ukm5/mint/bin

...

Функция (необходимо расположить в начале скрипта):

result()
{
if [ $? -ne 0 ]; then
echo "ERROR"
exit 1
fi
}

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

...

exit 1
fi
}

Эту часть нужно разместить в конце скрипта:

result_with_restart
echo "==== UI started"

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

...

exit 0

Чтобы работа и ошибки самого скрипта отразились в логе, надо добавить в начало скрипта:

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.

Горячие клавиши:

  • Right ALT+TAB – переключение между открытыми приложениями;
  • Right ALT+F4 – закрытие активного приложения в фокусе.
  • Остальные - в офиц. док-ции Openbox

...

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

Блок кода
languagebash
themeMidnight
linenumberstrue
#!/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-адрес Папкаили исполняемыхдоменное файловимя УКМ5подключения кассыRDP
NAME=$(tail $MINT_DIR/.ext_app)PORT='3389'                                             # Порт Имяподключения скриптаRDP
LOGFILE=$MINT_DIR/logs/service-$NAME.logRDPFILE='/home/ukm5/mint/bin/ext_apps/1c.rdp'           # Файл подключения RDP с #Windows Лог файл
LOGIN='Admin'RDP-фермы
#COM_01='/serial:COM1,/dev/ttyS0,Serial,permissive'     # Пример проброса COM-порта
#COM_07='/serial:COM7,/dev/ttyACM0,Serial,permissive'   # Пример проброса USB-COM-порта (работает на основании драйвера в Ubuntu, сканер                  работает плохо)
COM_1=''   # Логин пользователя Windows PASSWORD='One1'                                         # Пароль пользователя Windows
IP_ADDRCOM-порты
COM_2=''                                              # IP адрес# или доменное имя подключения RDP
PORT
COM_3='3389'                                              # Порт подключения# RDP
RDPFILE='/home/ukm5/mint/bin/ext_apps/1c.rdp
COM_4=''           #     Файл подключения RDP с Windows RDP фермы #COM_01='/serial:COM1,/dev/ttyS0,Serial,permissive'     # Пример проброса COM порта #COM_07='/serial:COM7,/dev/ttyACM0,Serial,permissive'   # Пример проброса USB-COM порта (работает на основании драйвера в ubuntu, сканер работает# плохо)
COM_15=''                                                # COM порты
COM_26=''                                                # 
COM_37=''                                                # 
COM_48=''                                                # 
COM_59=''                                                # 
COM#PRINTER_600='/printer'                                  # 
PRINTER=''                        #  COM_7=''                    # Принтер


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

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

    echo
    echo "==== starting mint #service"
 PRINTER=''   systemctl start mint
    result
    echo "==== mint service started"
    
    echo
    echo "==== starting UI"
    export DISPLAY=:0
  # Принтер su ukm5 result()    -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"   if [ $? -ne 0 ]; then     echo "ERROR"     exit 1  # fiОстанавливаем }mint

result_with_restart()                    systemctl stop mint
result_with_restart
echo "==== mint service stopped"

echo
echo "==== starting freerdp"               # Функция перезапуска кассового модуля при завершении скрипта с ошибкой {   if# [Запускаем $?RDP
-neexport 0 ]; then
    echo "ERROR"

    echo
    echo "==== starting mint service"
    systemctl start mint
    result
   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 "==== mint serviceUI started"
    
  

echo
   
echo "==== starting mint UIservice"     export DISPLAY=:0         su ukm5 -c "$MINT_DIR/start_chrome.sh >/dev/null 2>&1 &"   # Запускаем echo "==== UI started"

    exit 1
  fi
}
mint после выхода/дисконнекта RDP
systemctl start mint
result
echo "==== mint service started"


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

            # Запуск RDP

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

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


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

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

echo
echo "==== starting freerdp"                            # Запускаем RDPmint service"
systemctl start mint
result
echo "==== mint service started"

echo
echo "==== starting UI"
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_restartsu ukm5 -c "$MINT_DIR/start_chrome.sh >/dev/null 2>&1 &"
echo "==== UI started"

exit 1
fi
}


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

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


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


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

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

exit 0

Чтобы работа и ошибки самого скрипта отразились в логе, надо добавить в начало скрипта:

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

...

Руководство по работе с 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.