Служба Artifactory не запускается в Windows

Я пытаюсь запустить Artifactory на Windows Server, но служба Artifactory не запускается. Я запускаю Windows Server 2016 Datacenter на виртуальной машине в Hyper-V. Я пробовал устанавливать сервер с графическим интерфейсом Windows и без него. Artifactory устанавливается через Chocolatey:

choco install Artifactory -y

Когда я пытаюсь запустить службу с помощью PowerShell:

Start-Service Artifactory

Я сразу получаю эту ошибку в PowerShell:

Служба "artifactory (Artifactory)" не может быть запущена из-за следующей ошибки: Не удается запустить службу Artifactory на компьютере ".".

Журналы событий Windows показывают эти две ошибки в следующем порядке:

  • Истекло время ожидания (30000 миллисекунд) при ожидании подключения службы Artifactory.
  • Не удалось запустить службу Artifactory из-за следующей ошибки: служба не ответила на запрос запуска или управления своевременно.

Опять же, эти ошибки происходят немедленно, поэтому ошибка тайм-аута полностью ошибочна.

Но я могу вручную запустить процесс Artifactory:

C:\Program Files\artifactory\bin\artifactory.bat

Артефактические журналы

commons-daemon.2017-08-10.log

[2017-08-10 10:02:53] [info]  [ 2344] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:53] [info]  [ 2344] Service Artifactory name Artifactory
[2017-08-10 10:02:53] [info]  [ 2344] Service 'Artifactory' installed
[2017-08-10 10:02:53] [info]  [ 2344] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info]  [ 3420] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info]  [ 3420] Updating service...
[2017-08-10 10:02:54] [info]  [ 3420] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info]  [ 3420] Update service finished.
[2017-08-10 10:02:54] [info]  [ 3420] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info]  [ 1468] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info]  [ 1468] Updating service...
[2017-08-10 10:02:54] [info]  [ 1468] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info]  [ 1468] Update service finished.
[2017-08-10 10:02:54] [info]  [ 1468] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info]  [ 1000] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:54] [info]  [ 1000] Updating service...
[2017-08-10 10:02:54] [info]  [ 1000] Service 'Artifactory' updated
[2017-08-10 10:02:54] [info]  [ 1000] Update service finished.
[2017-08-10 10:02:54] [info]  [ 1000] Commons Daemon procrun finished
[2017-08-10 10:02:54] [info]  [ 5016] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info]  [ 5016] Updating service...
[2017-08-10 10:02:55] [info]  [ 5016] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info]  [ 5016] Update service finished.
[2017-08-10 10:02:55] [info]  [ 5016] Commons Daemon procrun finished
[2017-08-10 10:02:55] [info]  [ 4308] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info]  [ 4308] Updating service...
[2017-08-10 10:02:55] [info]  [ 4308] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info]  [ 4308] Update service finished.
[2017-08-10 10:02:55] [info]  [ 4308] Commons Daemon procrun finished
[2017-08-10 10:02:55] [info]  [ 1168] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:55] [info]  [ 1168] Updating service...
[2017-08-10 10:02:55] [info]  [ 1168] Service 'Artifactory' updated
[2017-08-10 10:02:55] [info]  [ 1168] Update service finished.
[2017-08-10 10:02:55] [info]  [ 1168] Commons Daemon procrun finished

artifactory-services.2017-08-10.log

[2017-08-10 10:02:56] [info]  [ 3172] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:56] [info]  [ 3172] Updating service...
[2017-08-10 10:02:56] [info]  [ 3172] Service 'Artifactory' updated
[2017-08-10 10:02:56] [info]  [ 3172] Update service finished.
[2017-08-10 10:02:56] [info]  [ 3172] Commons Daemon procrun finished
[2017-08-10 10:02:56] [info]  [  540] Commons Daemon procrun (1.0.11.0 64-bit) started
[2017-08-10 10:02:56] [info]  [  540] Updating service...
[2017-08-10 10:02:56] [info]  [  540] Service 'Artifactory' updated
[2017-08-10 10:02:56] [info]  [  540] Update service finished.
[2017-08-10 10:02:56] [info]  [  540] Commons Daemon procrun finished

Обновлять

Используя procmon, я заметил, что когда я пытался запустить службу «artifactory», она запускала «artifactory-service.exe». Попытка запустить эту программу непосредственно сама привела к следующей ошибке:

Система не может найти ключ реестра для службы 'artifactory-service' Ошибка загрузки конфигурации Система не может найти указанный файл. Commons Daemon procrun завершился неудачно со значением выхода: 2 (не удалось загрузить конфигурацию) Система не может найти указанный файл.

Повторная проверка procmon показывает, что когда я запускаю 'artifactory-service.exe', он пытается получить доступ к записи реестра 'HKLM \ SOFTWARE \ WOW6432Node \ Apache Software Foundation \ Procrun 2.0 \ artifactory-service' и не находит ее. Я подтвердил с помощью regedit, что эта запись в реестре не существует. Я склонен думать, что это одна из причин, по которой служба не запускается.


person Jason Boyd    schedule 10.08.2017    source источник
comment
Что вы видите в журналах Tomcat и Artifactory?   -  person Ariel    schedule 10.08.2017
comment
Журналы Artifactory содержат кое-что, связанное с установкой. Start-Service Artifactory не добавляет в логи ничего нового. Я добавлю, что есть, к вопросу, если это поможет. Журналы Tomcat пусты.   -  person Jason Boyd    schedule 10.08.2017
comment
Я имел в виду журналы Tomcat: файлы 'catalina.out' и 'localhost.log' И журналы Artifactory: файл 'artifactory.log'.   -  person Ariel    schedule 10.08.2017
comment
@Ariel Эти файлы не существуют.   -  person Jason Boyd    schedule 10.08.2017
comment
Можете ли вы найти домашнюю папку Artifactory и посмотреть, есть ли в ней папка журналов?   -  person Ariel    schedule 13.08.2017
comment
@ariel - В домашней папке Artifactory есть папки журналов, но в них нет файлов, кроме тех, что я опубликовал в своем вопросе   -  person Jason Boyd    schedule 20.08.2017


Ответы (2)


Похоже, это вызвано тем, что artifactory-service.exe вызывает использование необычных символов внутри определения службы. После запуска installService.bat, когда я проверил Службу, "Путь к исполняемому файлу" был

...\artifactory-pro-5.5.1\bin\artifactory-service.exe ೴//RS//Artifactory

Если необычный символ - это какой-то странный символ Юникода, например этот: http://www.fileformat.info/info/unicode/char/0cf4/index.htm

Похоже, это вызвано artifactory-service.exe, который представляет собой просто более старую версию Prunsrv.exe v1.0.11.0 «Commons Daemon Service Runner». Я не могу найти документацию по этой ошибке, поэтому не знаю основной причины.

Чтобы решить эту проблему, я получил самую последнюю версию prunsrv.exe v1.0.15.0 из установки Tomcat 8 (tomcat8.exe), переименовал ее в artifactory-service.exe и поместил обратно в% ARTIFACTORY_HOME% \ bin установочная папка. Это позволило ему без проблем установить и начать работу.

person Kyle Dobitz    schedule 03.10.2017

Отлично! Ваша процедура у меня работает, большое спасибо. Гремлин - это недопустимый символ, который мы видим на полном пути службы после установки. Я был озадачен, потому что служба артефактов нормально работает под Windows 10, но отказывалась работать под Windows 2016. Пытался расширить PipeServiceTimeout, но безрезультатно.

Если кому-то из вас это непонятно, просто нужно переименовать tomcat8.exe из последней загрузки tomcat 8.5.23 в artifactory-service.exe. Проверка свойства файла позволяет увидеть исходный файл prunsrv.exe v1.0.11.0 или prunsrv.exe v1.0.15.0.

Снимок свойств файла - нажмите здесь

person Thierry Queensland    schedule 08.10.2017