Artifactory服务无法在Windows上启动

时间:2017-08-10 15:53:13

标签: windows-services artifactory windows-server-2016

我试图在Windows Server上运行Artifactory但Artifactory服务无法启动。我在Hyper-V中的VM中运行Windows Server 2016 Datacenter。我已经尝试过使用和不使用Windows GUI的服务器安装。 Artifactory通过Chocolatey安装:

choco install Artifactory -y

当我尝试使用PowerShell启动服务时:

Start-Service Artifactory

我立即在PowerShell中遇到此错误:

  

服务&神器(Artifactory)'由于以下错误导致无法启动:无法在计算机上启动服务Artifactory'。'。

Windows事件日志按以下顺序显示这两个错误:

  
      
  • 等待Artifactory服务连接时达到超时(30000毫秒)。
  •   
  • 由于以下错误,Artifactory服务无法启动:   该服务未及时响应启动或控制请求。
  •   

同样,这些错误会立即发生,因此超时错误完全是错误的。

但是我能够手动启动Artifactory过程:

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

Artifactory Logs

公地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'。试图直接自己运行该程序导致以下错误:

  

系统无法找到服务的注册表项&#artifact; artifactory-service'   加载配置失败   该系统找不到指定的文件。   Commons Daemon procrun以退出值失败:2(无法加载配置)   系统找不到指定的文件。

再次检查procmon表明当我开始使用artifactory-service.exe'它试图访问注册表项' HKLM \ SOFTWARE \ WOW6432Node \ Apache Software Foundation \ Procrun 2.0 \ artifactory-service'而没有找到它。我通过注册表确认此注册表项不存在。我倾向于认为这是服务无法启动的部分原因。

2 个答案:

答案 0 :(得分:5)

这似乎是由artifactory-service.exe引起的,导致在服务定义中使用了不常见的字符。运行installService.bat后,我检查了服务"可执行文件"有

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

这个不寻常的角色是一些奇怪的unicode角色,例如: http://www.fileformat.info/info/unicode/char/0cf4/index.htm

这似乎是由artifactory-service.exe引起的,它只是" Commons Daemon Service Runner"的旧版本。 prunsrv.exe v1.0.11.0。我无法找到此错误的文档,因此我不知道其根本原因。

我要解决的问题是从Tomcat 8安装(tomcat8.exe)获取最新版本的prunsrv.exe v1.0.15.0并将其重命名为artifactory-service.exe并将其放回%ARTIFACTORY_HOME %\ bin安装文件夹。这使它能够安装并开始运行而不会出现问题。

答案 1 :(得分:3)

太棒了!你的程序对我有用,非常感谢。 gremlin是我们在安装后在服务完整路径上看到的非法字符。我很困惑,因为在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

File Property Snapshot -- click here