====== Запуск ======
На текущий момент есть три способа запуска:
* с помощью Wrapper Tanuki (**рекоммендуемый способ**, для всех систем, кроме Windows с Java x64)
* с помощью Wrapper YAJSW (альтернативный, для всех систем)
* как java-приложение, без помощи сторонних программ
* из docker-контейнера
===== Запуск demo =====
Выполнить:
jroboplc/start.bat
===== Запуск через wrapper tanuki =====
==== Скачивание ====
Перейти в каталог ''jroboplc/wrapper/'' и выполнить соответствующий скрипт:
* download_wrapper_linux.sh (для linux)
* download_wrapper_windows.bat (для windows)
==== Скрипты запуска в Linux ====
Скрипты запуска находятся в каталоге jroboplc/ctl.lin:
_console - запустить как приложение
_install - установить сервис
_remove - удалить сервис
_restart - перезапустить сервиса
_start - запустить сервис
_status - показать статус сервиса
_stop - остановить сервис
Для изменения имени сервиса (если на одной машине планируется несколько инсталляций) использовать параметры ''APP_NAME'' и ''APP_LONG_NAME'' в файле ''jroboplc/ctl.lin/jroboplc''.
==== Скрипты запуска в Windows ====
Скрипты запуска находятся в каталоге jroboplc/ctl.win:
_console.bat - запустить как приложение
_install.bat - установить сервис
_remove.bat - удалить сервис
_restart.bat - перезапустить сервиса
_start.bat - запустить сервис
_status.bat - показать статус сервиса
_stop.bat - остановить сервис
Для изменения имени сервиса (если на одной машине планируется несколько инсталляций) использовать параметры в файле jroboplc/wrapper/wrapper-conf/wrapper.win.conf:
wrapper.name=jroboplc
wrapper.displayname=jroboplc
wrapper.description=jroboplc
==== Конфигурационные файлы ====
В каталоге ''jroboplc/wrapper-conf'' находятся настроенные по умолчанию конфигурационные файлы раздельно для linux и windows:
* wrapper.lin.conf
* wrapper.win.conf
Наиболее важные параметры этих файлов:
# для linux
set.JAVA_HOME=/usr/lib/jvm/java-8-oracle
wrapper.java.command=%JAVA_HOME%/bin/java
# для windows
wrapper.java.command=java # при этом java и javac должны быть в PATH системы
# для linux и windows
wrapper.java.classpath.1=../lib/wrapper.jar
wrapper.java.classpath.2=../../../jar/core/jroboplc.jar
wrapper.java.library.path.1=../lib
wrapper.app.parameter.1=promauto.jroboplc.core.JRoboPLC
wrapper.app.parameter.2=-plg
wrapper.app.parameter.3=../../../jar/plugin
wrapper.app.parameter.4=-cfg
wrapper.app.parameter.5=../../../conf
wrapper.app.parameter.6=-cmd
wrapper.app.parameter.7="ansi off|start"
wrapper.logfile=../../../log/wrapper
wrapper.console.title=JRoboPLC
# для windows
wrapper.name=jroboplc
wrapper.displayname=jroboplc
wrapper.description=jroboplc
wrapper.ntservice.starttype=DEMAND_START # либо AUTO_START, DELAY_START
# опционально
wrapper.disable_forced_shutdown=TRUE
# если операционная система не правильно отдает текущую временную зону, то прописать явно соответствующую зону (рекоммендуемый вариант):
wrapper.timezone=Asia/Yekaterinburg
# либо так
#wrapper.java.additional.1=-Duser.timezone="Asia/Yekaterinburg"
#wrapper.java.additional.1=-Duser.timezone="Etc/GMT-5"
# либо, если ubuntu, см. след. раздел
Внимание! От версии к версии производитель wrapper'а меняет названия параметров, поэтому могут быть несовпадения.
==== Исправление часового пояса в Ubuntu ====
sudo cp /etc/timezone /etc/timezone.dist
echo "Asia/Yekaterinburg" | sudo tee /etc/timezone
sudo dpkg-reconfigure --frontend noninteractive tzdata
==== Установка сертификатов в windows ====
Иногда при запуске под windows происходит примерно следующее:
wrapper | A signature was found in "C:\wrapper-windows-x86-32-3.5.7-pro\bin\wra
pper.exe", but checksum failed: (Errorcode: 0x800b010a)
A certificate chain could not be built to a trusted root authority. (0x800b010a)
wrapper | Signer Certificate:
wrapper | Serial Number:
wrapper | 00 97 06 fe b5 6e 56 cc cb 66 3a bb 55 a7 a0 e4 76
wrapper | Issuer Name: UTN-USERFirst-Object
wrapper | Subject Name: Tanuki Software Ltd.
wrapper | TimeStamp Certificate:
wrapper | Serial Number:
wrapper | 47 8a 8e fb 59 e1 d8 3f 0c e1 42 d2 a2 87 07 be
wrapper | Issuer Name: UTN-USERFirst-Object
wrapper | Subject Name: COMODO Time Stamping Signer
wrapper | Date of TimeStamp : 2010/12/19 22:32
wrapper | The Wrapper will shutdown!
Решение проблемы заключается в установке недостающих/просроченных сертификатов, и описано здесь: https://wrapper.tanukisoftware.com/doc/english/troubleshooting.html#9
Если доступ на сайт отсутствует, то использовать online proxy. Копия страницы troubleshooting здесь: http://prom-auto.ru/doc/wrapper/troubleshooting.html
Сертификаты можно скачать здесь: http://prom-auto.ru/download/?dir=dist/wrapper/cert
===== Запуск через wrapper YAJSW =====
YAJSW (Yet Another Java Service Wrapper)
Скачивание и установка:
* Скачать дистрибутив последней версии https://sourceforge.net/projects/yajsw/files/yajsw/
* Распаковать в jroboplc/wrapper и переименовать распакованную папку в jroboplc/wrapper/yajsw
* Обновить скрипт запуска (см. далее)
Обновление скриптов запуска:
* Скопировать файл jroboplc/wrapper/yajsw-conf/wrapper.conf в jroboplc/wrapper/yajsw/conf. Дальнейшие изменения в конфигурации производить в jroboplc/wrapper/yajsw/conf/wrapper.conf
* Для изменения имени сервиса (если на одной машине планируется несколько инсталляций) использовать параметр appname
* Для изменения способа запуска сервиса использовать параметр starttype
Внимание! В Windows автоматический старт не работает. Для автоматического запуска использовать режим DEMAND_START и создать ярлык в папке Автозагрузка на файл bat/startService.bat
Для работы yajsw требуется, чтобы команда java выполнялась из любого каталога на любом уровне для всех пользователей. Вариант осуществления:
* в windows: добавить javaBin в path системы
* в linux: добавить ссылки на java и javac в /usr/bin
Управление:
* В каталогах jroboplc/wrapper/yajsw/bat находятся необходимые скрипты для управления сервисом в windows
* Для linux - jroboplc/wrapper/yajsw/bin
===== Запуск как java-приложение =====
Пример строки запуска, если текущий каталог ''jroboplc'':
java -jar jar/core/jroboplc.jar -cfg conf -cmd "ansi on|start"
===== Запуск из docker-контейнера =====
https://hub.docker.com/r/promauto/jrobo