Служба jenkins не запускается на Windows 2008 - PullRequest
4 голосов
/ 07 февраля 2012

Я пытаюсь установить Jenkins в качестве службы в Windows Server 2008 Datacenter (SP2).Кажется, я не могу заставить его работать как службу, и я ищу какие-нибудь идеи, которые могли бы помочь ему в этом.

Когда я пытаюсь установить Jenkins с собственным пакетом Windows, я получаю "Ошибка 1920. Служба Jenkins не смоглаНачните."в журналах msiexec.

Я выполнил следующие шаги для ручной установки:

  • Установлен 32-битный java
  • Запустил Jenkins с java -jar jenkins.war
  • Перешел к Управлению Дженкинсом и настроил его запуск в качестве службы Windows.
  • Сказал Дженкинсу перезапустить себя как службу.

На этом этапе Дженкинс умирает ине возвращается.

Когда я пытаюсь запустить Jenkins вручную, я получаю сообщение об ошибке 1053 (служба не отвечает).Я не могу найти какие-либо файлы журналов или другую информацию.

Любые идеи или предложения приветствуются, мне также было бы любопытно услышать от всех, кто работает с этим O / S (или с сервером Windows 2003).).

Большое спасибо

Ответы [ 7 ]

4 голосов
/ 26 марта 2013

Версия 1.498 обладает более высокой безопасностью, которая может нарушить работу подчиненного Jenkins как службы.

https://issues.jenkins -ci.org / browse / JENKINS-16273

Рекомендации включают:

  1. Остановка службы
  2. Удалите службу, если она существует dos (sc delete jenkinsslave-C__Jenkins)
  3. Удалите старые jenkins-slave.exe, slave.jar и jenkins-slave.xml
  4. Запустите веб-клиент и дайте ему установить службу.
  5. Отредактируйте файл jenkins-slave.xml так, чтобы он выглядел так, что важной частью является jnlpCredentials <arguments>-Xrs -jar "%BASE%\slave.jar" -jnlpCredentials <user>:<password> -jnlpUrl http://<your server>/computer/<slave name>/slave-agent.jnlp</arguments>* 1021.*

Я обнаружил, что удаление slave.jar и запуск веб-клиента как зарегистрированного пользователя работали лучше всего, вы получаете секрет, и не нужно редактировать XML.

Если я не удаляю slave.jar, который обнаружил, что редактирование jenkins-slave.xml и удаление secret в arguments работает без каких-либо учетных данных (дыра в безопасности?).См. Jenkins-slave.err

"-secret" is not a valid option

jenkins-slave.xml

...
<service>
  <id>jenkinsslave-D__Jenkins</id>
  <name>Jenkins Slave</name>
...
  <executable>C:\Program Files\Java\jre7\bin\java.exe</executable>
  <arguments>-Xrs  -jar "%BASE%\slave.jar" -jnlpUrl http://jenkins.domain/jenkins/computer/mycomputername/slave-agent.jnlp </arguments> <!-- -secret fafd7bf18fdcc48ffb17fe1ff0a072ce5d33b004769b351e9d633f875b63fb59 -->
...
1 голос
/ 16 апреля 2012

У меня были похожие проблемы на сервере Windows 2003.Я уже установил .net framwork 4.0, но jenkins (v1.4.60) не работает с этой платформой.После установки .net Framework 2.0 (v2.0.50727) проблема была решена.

0 голосов
/ 23 февраля 2017

Я получил ту же проблему и решил ее, установив путь к каталогу Java.

0 голосов
/ 26 ноября 2013

Ответ, предоставленный KCD, является полным и весьма актуальным.Но иногда мы сталкиваемся с этой проблемой из-за глупой ошибки.

Я также сталкивался с подобной проблемой, когда получал сообщение об ошибке, когда инициировал Jenkins из COMMAND PROMPT.

Команда, которую я вводил, была:

$: start jenkins.exe

После того, как я отправил свои заметки, я обнаружил, что проблема намного проще.Я неправильно использовал команду.Это должно было быть:

$: jenkins.exe start/stop/restart

При правильном вводе команд проблема была решена.

0 голосов
/ 02 июля 2013

Я нашел настройку по умолчанию для службы Jenkins, чтобы разрешить только 256 м HEAP. Я предполагаю, что они ожидали, что мы закодируем только "Hello World". Я нашел это после случайных PermGen ошибок. Но я обнаружил, что не могу исправить jenkins.xml со всеми,

-Xrs -Xms<value> -Xmx<value> --XX:PermSize=<value> --XX:MaxPermSize=<value>

Я мог запустить Дженкинс только во время настройки,

-Xrs -Xms<value> -XX:MaxPermSize=<value>
0 голосов
/ 06 мая 2013

У меня была такая же проблема, но для меня это была проблема с файлом конфигурации jenkins.xml .Это не был правильный XML, и поэтому Дженкинс не мог загрузить его должным образом.Я обнаружил, что это была ошибка конфигурации, выполнив jenkins.exe в командной строке от имени администратора, это дало мне правильный вывод ошибки.

0 голосов
/ 07 февраля 2012

Предложение: если вы вообще можете этого избежать, не запускайте Jenkins как службу в Windows - вы можете столкнуться со всеми видами проблем, связанных с разрешениями и работающими в фоновом режиме.Недостатком является то, что он не запустится автоматически при перезапуске машины, но чаще всего с этим можно жить.По моему опыту, Дженкинс очень силен в плане сбоя.Если вы хотите быть очень осторожным - напишите обертку, которая проверяет так часто, что Дженкинс жив (например, пытается подключиться к нему через HTTP) и перезапускает его, если он умер.

В приложении есть Pythonскрипт, который это делает (без гарантий, обязательств и т. д.):

'''Usage:
hudson.py [<http-port>]'''

# Script to start/revive Hudson/Jenkins
# The script checks if Hudson is alive by trying to connect to its HTTP port
# if connection fails - it tries to restart Hudson 

import sys
import time
import httplib
import os

HTTPTimeout = 10
CheckInterval = 300
DefaultHudsonPort = 8081

if (__name__ == '__main__'):
    if len(sys.argv) > 2:
        print __doc__
        sys.exit(1)
    elif len(sys.argv) == 2:
        portNum = int(sys.argv[1])
    else:
        portNum = DefaultHudsonPort

    httpConnection = None
    while True:
        if not httpConnection:
            httpConnection = httplib.HTTPConnection("127.0.0.1", portNum, timeout = HTTPTimeout)
        try:
            httpConnection.connect()
            httpConnection.close()
        except:
            print "(Re)Starting Hudson/Jenkins on port %d" % portNum
            os.system("java -jar hudson.war --httpPort=%d" % portNum)
        time.sleep(CheckInterval)
...