Графический вариант сервера jCjSGui

jCjSGui предназначен для запуска постов как использующих так и не использующих функционал GUI,
а также для отладки js-скриптов

cd /D c:\jCjS2\bin

jCjSGui.exe

По умолчанию, используется главный конфигурационный файл C:/jCjS2/etc/jcjs.xml
Если вас не устраивает такое положение дел, можно запустить сервер jCjS указав ему необходимую конфигурацию

cd /D c:\jCjS2\bin

# Чтобы запустить несколько одновременно работающих процессов, достаточно выполнить
jCjSGui.exe -cfg ../stuff/tests/pluginPHP/jcjs_php.xml
jCjSGui.exe -cfg ../stuff/tests/SMTPClient/jcjs_SMTPClient.xml
# Главное условие одновременного запуска - разные http-порты, используемые jCjS

После запуска jCjSGui в трее появится значок правый клик мыши по которому вызовет контекстное меню

Если выбрать пункт меню jCjS v.2.4.8.311, будет открыт браузер по адресу
расположения главного поста. Например http://localhost:8080/postsTable/


Запуск в консольном варианте

Консольный вариант запуска полезен для отладки скриптов, при этом все сообщения сервера jCjS выводятся в консоль.
Запуск сервера в консольном варианте производится командой

cd /D c:\jCjS2\bin

jCjSService.exe -e

По умолчанию, используется главный конфигурационный файл C:/jCjS2/etc/jcjs.xml
Если вас не устраивает такое положение дел, можно запустить сервер jCjS указав ему необходимую конфигурацию

cd /D c:\jCjS2\bin

jCjSService.exe -e -cfg ../stuff/postsTable/jcjs_postTable.xml
Для остановки сервера нажимаем Ctrl-C.


Запуск через контекстное меню

Существует удобный инструмент запуска - с помощью контекстного меню.
Правый клик мыши на конфигурационном файле .xml отобразит контестное меню,
в котором есть два пункта запуска и один для создания ярлыка запуска на рабочем столе пользователя.


Запуск в виде сервиса

jCjSService имеет возможность запуска в качестве службы. В большинстве случаев службам запрещено взаимодействие с консолью или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых служб возможно исключение.

Существует несколько режимов для служб:

После установке службы jCjSService устанавливается режим запуска «автоматический запуск при загрузке компьютера».

У механизма запуска в качестве службы есть определенные преемущества перед обычным запуском.

Условия использования: Например, у вас есть несколько постов, два из них опрашивают оборудование по последовательному посту и сохраняют полученные данные в БД, а последний предоставляет архивные данные через WEB-фейс. Также у вас нет постов, которые используют функции GUI
В этом случае рекомендуется использовать jCjSService.


Специфические аргументы

Все аргументы доступны в контексте JS посредством функции server.info('args')


Методика установки службы jCjSService в Windows

Для установка службы необходимо выполнить несколько команд

cd /D c:\jCjS2\bin

# Установка службы с дефолтным именем jCjSService и
# дефолтным конфигурацонным файлом ../etc/jcjs.xml
jCjSService.exe  -i
# Будет установлена службы с именем jCjSService

# Чтобы установить несколько служб, достаточно указать
# отличное от jCjSService имя и используемый конфиг службы
jCjSService.exe  -i -n jCjSServicePHP  -a "-cfg ../stuff/tests/pluginPHP/jcjs_php.xml"
jCjSService.exe  -i -n jCjSServiceSMTP -a "-cfg ../stuff/tests/SMTPClient/jcjs_SMTPClient.xml"

# Будут установлены службы с именами jCjSServicePHP и jCjSServiceSMTP
# Главное условие одновременного запуска - разные http-порты, используемые jCjS

# так-же существует возможность установки служб с принудительным указанием http порта
jCjSService.exe  -i -n jCjSServicePHP  -a "-p 8081 -cfg ../stuff/tests/pluginPHP/jcjs_php.xml"
jCjSService.exe  -i -n jCjSServiceSMTP -a "-p 8082 -cfg ../stuff/tests/SMTPClient/jcjs_SMTPClient.xml"
# тоже самое, только с указанием порта в hex
jCjSService.exe  -i -n jCjSServicePHP  -a "-p 0xAF91 -cfg ../stuff/tests/pluginPHP/jcjs_php.xml"
jCjSService.exe  -i -n jCjSServiceSMTP -a "-p AF92 -cfg ../stuff/tests/SMTPClient/jcjs_SMTPClient.xml"


# установка службы с принудительным указанием http порта и включенным шифрованием
jCjSService.exe  -i -n jCjSServicePHP  -a "-p 8081 -ps 8081 -cfg ../stuff/tests/pluginPHP/jcjs_php.xml"

# установка службы с принудительным указанием http порта и включенным шифрованием и отключеным логированием
jCjSService.exe  -i -n jCjSServicePHP  -a "-cfg ../stuff/tests/pluginPHP/jcjs_php.xml -p 8081 -ps 8081 -lt 0"

# установка службы с принудительным указанием каталога для логирования
jCjSService.exe  -i -n jCjSServicePHP  -a "-cfg ../stuff/tests/pluginPHP/jcjs_php.xml -ld ../logs_ServicePHP"

# Запрос состояния всех установленных служб
jCjSService.exe  -Q

ServiceName      State
jCjSService      1       STOPPED
jCjSServicePHP   2       START_PENDING
jCjSServiceSMTP  3       STOP_PENDING
jCjSServiceSND   4       RUNNING
jCjSServiceKASS  5       PAUSE_PENDING
jCjSServiceASRK  6       PAUSED


Запуск службы

Для запуска службы необходимо выполнить команду

cd /D c:\jCjS2\bin

jCjSService.exe # Равноценно команде jCjSService.exe -n jCjSService

jCjSService.exe -n newServiceName1
jCjSService.exe -n newServiceName2

# Будут запущены службы с именами jCjSService, newServiceName1 и newServiceName2

# запуск средствами Windows
net start jCjSService
net start newServiceName1
net start newServiceName2

# Запрос состояния всех установленных служб
jCjSService.exe  -Q

ServiceName      State
jCjSService      4       RUNNING
newServiceName1  4       RUNNING
newServiceName2  4       RUNNING


Остановка службы

Для запуска службы необходимо выполнить команду

cd /D c:\jCjS2\bin

jCjSService.exe -t # Равноценно команде jCjSService.exe -t -n jCjSService

jCjSService.exe -t -n newServiceName1
jCjSService.exe -t -n newServiceName2

# Будут остановлены службы с именами jCjSService, newServiceName1 и newServiceName2

# останов средствами Windows
net stop jCjSService
net stop newServiceName1
net stop newServiceName2

# Запрос состояния всех установленных служб
jCjSService.exe  -Q

ServiceName      State
jCjSService      1       STOPPED
newServiceName1  1       STOPPED
newServiceName2  1       STOPPED


Удаление службы

Для удаления службы необходимо выполнить несколько команд

cd /D c:\jCjS2\bin

# Чтобы деинсталировать службу
jCjSService.exe  -u
jCjSService.exe  -u -n newServiceName1
jCjSService.exe  -u -n newServiceName2

# Будут удалены службы с именами jCjSService, newServiceName1 и newServiceName2


Вывод помощи

cd /D c:\jCjS2\bin

jCjSService.exe  -h

# Выведет:
#jCjSService.exe -[a|e|h|i|n|s|u|v|q]
#        -i(nstall) [account] [password]      : Install the service, optionally using given account and password
#        -i(nstall) [-n(ame) serviceName]     : Install the service, optionally using the required service name
#        -i(nstall) [-a(rgs) "all args"]      : Install the service, optionally using the required arguments
#        -u(ninstall)                         : Uninstall the service.
#        -u(ninstall) [-n(ame) serviceName]   : Uninstall the service, optionally using the required service name.
#        -u(ninstall) [-all]                  : Uninstall all installed services (Windows only).
#        -e(xec)                              : Run as a regular application. Useful for debugging.
#        -t(erminate)                         : Stop the service.
#        -t(erminate) [-n(ame) serviceName]   : Stop the service, optionally using the required service name.
#        -t(erminate) [-all]                  : Stop all installed services (Windows only).
#        -c(ommand) num                       : Send command code num to the service.
#        -c(ommand) num [-n(ame) serviceName] : Send command code num to the service using the required service name.
#        -d(irectory installation)            : installation directory.
#        -v(ersion)                           : Print version.
#        -p(ause)  [-n(ame) serviceName]      : Pause.
#        -r(esume) [-n(ame) serviceName]      : Resume.
#        -s(tatus)                            : Status service (default service name 'jCjSService').
#        -s(tatus) [-n(ame) serviceName]      : Status service, optionally using the required service name.
#        -Q(uery)                             : Get the status of all installed services from this instance.
#        -q(uery)                             : Get the status of all installed services from this instance without a title.
#        -Qa(ll)                              : Get state all installed services.
#        -qa(ll)                              : Get state all installed services without a title.
#        No arguments [-n(ame) serviceName]   : Start the service, optionally using the required service name.
#        -h(elp)                              : Show this help
#
#example:
# install service
# jCjSHttpsProxy  -i  -n newServiceName   -a "-p 9080 -ps 9081"
# start service
# jCjSHttpsProxy      -n newServiceName
# stop service
# jCjSHttpsProxy  -t  -n newServiceName
# uninstall service
# jCjSHttpsProxy  -u  -n newServiceName
# start all services (Windows only)
# jCjSHttpsProxy  -n -all
# stop all services (Windows only)
# jCjSHttpsProxy  -t  -all
# uninstall all services (Windows only)
# jCjSHttpsProxy  -u  -all


Далее