Наразі даний функціонал працює лише для OS Windows!
Device Manager(далі ДМ) має можливість працювати на одному пристрої як кілька додатків(служб) на різних портах.
Додатковий інстанс чи кілька інстансів використовують всі ті ж самі дані з каталогу де встановлено device manager, проте є відмінності.
Різниця в:
номер порту попереднього + 1
EDMSrv{InstanceID}.ini
де InstanceID
номер інстансу.На один фізичний сервер рекомендовано встановлювати не більше 20 інстансів.
EDMSrv_instance.bat
SET InstanceID=1
SET mypath=%~dp0
echo %mypath:~0,-1%
sc create EDMSrv%InstanceID% binPath= "%mypath:~0,-1%\EDMSrv.exe -s -%InstanceID%" DisplayName= EDMSrv%InstanceID% type= own start= auto
net start EDMSrv%InstanceID%
В першому рядку SET InstanceID
вказується ID нового ДМ, якщо 1 то буде створений додатковий сервіс EDMSrv1, якщо 2 то EDMSrv2 і т.д.
Зберігаємо зміни в файлі, після чого запускаємо bat файл з правами адміністратора.
Після запуску якщо прав було достатньо буде створено новий сервіс ДМ.
Перевірка роботи нового экземпляра ДМ, приклад:
Переходимо за посиланням:http://localhost:3939/dm/vchasno-kasa/
якщо все працює буде відображена наступна інформація
curl --location --request GET 'http://{{dm_ip}}:3939/dm/echo'
Де {{dm_ip}}
IP адреса пристрою де встановлено ДМ, або localhost
якщо запити відправляються на локально встановлений додаток.
Якщо додаток запущено та вебсервер працює:
<HTML>
<BODY><B>200 Echo</B></BODY>
</HTML>
Якщо є проблеми:
HTTP статус не буде 200
В даному прикладі дані якщо
InstanceID=1
C:\ProgramData\VCHASNO\DeviceManager1\
Файл EDMSrv_unreg.bat, який створюється автоматично при встановленні додатку, використовується для вилучення сервіса ДМ з будь яким id із системи, ось його вміст:
SET InstanceID=1
net stop EDMSrv%InstanceID%
sc delete EDMSrv%InstanceID%
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\EVO\EVO DeviceManager x64\Instances\%InstanceID%" /f /reg:32
Принцип ідентичний попередньому, якщо InstanceID=1 то буде вилучено сервіс EDMSrv1.
Для вилучення запускати bat файл потрібно з правами адміністратора.
InstanceID=0
який за замовчуванням на порту 3939 з назвою служби EDMSrv. Відповідно встановлювати час автооновлення потрібно саме на цьому ДМ.