Создание службы Windows для реестра RMI

1

Я хочу создать службу Windows для запуска службы RMI в моей системе. Команда, которую я использую для запуска этого на cmd,

C:\Program Files\Java\jdk1.7.0_67\jre\bin\rmiregistry.exe -J-Djava.rmi.server.useCodebaseOnly = false 11100

Я создал службу, используя windows sc.exe, используя команду

sc.exe create registry_service binPath = "C:\Program Files\Java\jdk1.7.0_67\jre\bin\rmiregistry.exe -J-Djava.rmi.server.useCodebaseOnly = false 11100"

Но при запуске этой службы я получаю всплывающее высказывание

"Error1053: служба не отвечала на запуск или запрос управления своевременно".

Может ли кто-нибудь сказать, где я ошибся?

Теги:
service
registry
rmi

2 ответа

0

Знайте, что мой ответ на этот вопрос запоздал, но, возможно, это поможет другим, у кого есть тот же вопрос.

Чтобы установить RMI в качестве службы Windows, вы можете использовать Apaches Procrun (prunsrv). С Apache Procrun вам не нужно ничего скачивать из Microsoft. Вам также не нужно скачивать что-либо еще. Ive использовал это много времени для настройки служб Windows и упаковки как Java, так и других exe-программ в качестве родных служб Windows. Взгляните на: https://commons.apache.org/proper/commons-daemon/procrun.html

Ниже приведен пример того, как RmiRegistry.exe может запускаться как родной сервис Windows, используя прокрутку.

  1. Чтобы запустить реестр RMI, мы используем программу RmiRegistry.exe.
  2. Чтобы остановить реестр RMI, мы используем программу Windows TaskKill.exe

В командном окне введите следующие команды:

Чтобы установить RmiRegistry.exe в качестве службы родных окон

set svcBaseDir="D:\nativeService"

%svcBaseDir%\bin\prunsrv64 //IS//RmiRegistrySvc ^
        --DisplayName="RMI Registry Service" ^
        --Install=%svcBaseDir%\bin\prunsrv64.exe ^
        --StartMode=exe ^
        --StopMode=exe ^
        --StartImage=<java install dir>\bin\rmiregistry.exe ^
        --StartParams=-J-Djava.rmi.server.useCodebaseOnly=false#11100 ^
        --StopImage=C:\Windows\System32\taskkill.exe ^
        --StopParams=/F#/IM#rmiRegistry.exe ^
        --LogPath=%svcBaseDir%\logs ^
        --StdOutput=auto ^
        --StdError=auto ^
        --LogPrefix=Native-JNI- ^
        --LogLevel debug ^
        --ServiceUser <your windows domain>\<service user name> ^
        --ServicePassword <service password> ^
        --Description="Runs the RMI Registry as a Windows Service" ^
        --Startup=auto

set svcBaseDir=

Конечно, D:\nativeService - это просто произвольное имя каталога. Вы можете выбрать любой каталог на любом диске. Я использую следующую структуру каталогов для этого родного сервера Windows, но вы можете использовать все, что вам нравится:

D:\nativeService
|
---- bin
     |
     ---- prunsrv64.exe
----logs

После того как RmiRegistry.exe установлен как родной сервис Windows, его можно запустить, остановить и перезапустить с помощью диспетчера служб Windows, как и любой другой родной сервис Windows.

Чтобы проверить или запустить службу RmiRegistry.exe на родном Windows на переднем плане (после ее установки)

%svcBaseDir%\bin\prunsrv64 //TS//RmiRegistrySvc

Удаление и удаление службы Windows RmiRegistry.exe из Windows

%svcBaseDir%\bin\prunsrv64 //DS//RmiRegistrySvc

Обратите внимание, что вы используете 64-разрядный prunsrv только для 64-битных серверов/компьютеров, в то время как 32-разрядный prunsrv может использоваться как для 32, так и для 64 серверов/компьютеров.

Ive переименовал загруженный файл prusrv.exe в prusrv64.exe для использования на всех 64-битных машинах. Это помогает мне различать 32-битную и 64-разрядную версии утилиты prusrv.exe.

0

Вы не можете использовать произвольный файл.exe в качестве службы Windows. Существуют особые требования. Вам необходимо использовать Windows Wrapper, который можно загрузить с Microsoft.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню