2014-10-16 6 views
45

Kann jemand das Zeitüberschreitungsfenster vergrößern, bevor Jenkins einen Benutzer ausmeldet? Ich möchte es auf 1 Tag oder so erhöhen.Erhöhen Sie das Jenkins-Login-Timeout

Ich arbeite den ganzen Tag hin- und her, und wir werden immer wieder zwischen den Jobs ausgeloggt. Zusätzlich zu dieser Frustration scheint das "Eingeloggt bleiben" -Kästchen auch nicht zu funktionieren.

+0

Welche Version von Jenkins verfügbar sein? Es gab einen Jenkins-Fehler im Zusammenhang mit Login-Cookies: https://issues.jenkins-ci.org/browse/JENKINS-16278. Auch wenn es nicht auf Ihre Version zutrifft, sollten Sie die Fehlerbehebungskommentare in diesem Fehler lesen. Dieser Bug weist auch darauf hin, dass das Standard-Login-Cookie-Timeout 14 Tage beträgt. –

+0

@DaveBacher wir laufen v1.567 und bekommen definitiv keine 14 Tage Login :) – Ray

+0

@DaveBacher Ich habe die Erinnerung an mich mit einem schnellen Kill des Browser Clients getestet nachdem ich mich für 10 Minuten in Chrome und Firefox eingeloggt habe funktioniert, also denke ich, dass der Logout gezwungen wird und die Erinnerung an mich bricht. – Ray

Antwort

40

Jenkins verwendet Jetty und Jetty's default timeout is 30 minutes. Dies ist unabhängig von den Authentifizierungseinstellungen - ich verwende Active Directory, aber diese Einstellung wirkt sich immer noch auf Zeitüberschreitungen aus.

Sie können das Zeitlimit überschreiben, indem Sie ein Argument --sessionTimeout=<minutes> an das Jenkins-Init-Skript oder -DsessionTimeout=<minutes> an die WAR-Datei übergeben. Zum Beispiel:

# Set the session timeout to 1 week 
$ java -jar jenkins.war --sessionTimeout=10080 

Alternativ können Sie bearbeiten Jenkins' <jenkinsHome>/.jenkins/war/WEB-INF/web.xml und fügen Sie es explizit:

<session-config> 
    <!-- one hour --> 
    <session-timeout>60</session-timeout> 
</session-config> 

Nach Oracle's docs Sie diesen Wert auf 0 setzen kann, um Timeouts vollständig zu deaktivieren.

Um den aktuellen Wert für Timeouts herauszufinden, können Sie die Groovy-Konsole in Jenkins bereitgestellt verwenden:

import org.kohsuke.stapler.Stapler; 
Stapler.getCurrentRequest().getSession().getMaxInactiveInterval()/60 

Auf meinem Beispiel zeigt dies Result: 30.

+2

Scheint so, als ob das Argument sein sollte '- -sessionTimeout = '(das Gleichheits beachten sie unterschreiben). –

+1

wo die' WEB-INF' Verzeichnis? – bubakazouba

+1

@bubakazouba auf meinem Debian-System, es ist in/var/cache/jenkins/Krieg /. Unter Windows 7 ist es in C : \ Programme (x86) \ Jenkins \ war \ –

1

Diese Version von Jenkins 1.567 hat auch die Option automatische Aktualisierung aktivieren, so dass es irgendwie die Sitzung aktualisiert und ich nie abgemeldet werde. Es funktioniert für mich ...

9

Ab 1.528 können Sie den Parameter --sessionTimeout <minutes> beim Starten von Jenkins über ein Init-Skript verwenden. Wenn der Krieg zu beginnen, passieren in -DsessionTimeout=<minutes>

Update für 1,6

Wenn vorbei in als arg Verwendung --sessionTimeout=<minutes>

+0

Dies ist mein Jenkins-Prozess. Aber immer noch Time-out unter 10 Minuten. Was ist los mit dir? "java -Dcom.sun.akuma.Daemon = dämonisiert -Djava.awt.headless = true -Xmx6144m -Xms2048m -XX: MaxPermSize = 512m -XX: + CMSClassUnloadingEnabled -XX: + UseConcMarkSweepGC -Dhudson.diyChunking = false -DJENKINS_HOME =/export/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile =/var/log/jenkins/jenkins.log --webroot =/var/cache/jenkins/krieg --daemon --httpPort = 80 --ajp13Port = 8009 --debug = 5 --handlerCountMax = 100 --handlerCountMaxIdle = 20 --sessionTimeout = 600 -Dorg.kohsuke .stapler.compression.CompressionFilter.disabled = true " – Baskar

+0

Sieht so aus, als ob Sie den Krieg starten. Versuchen Sie,' -DsessionTimeout = 600' zu übergeben. – cesar

+2

Es scheint so, als sollte das Argument von jenkins 1.6 '--sessionTimeout = ' lauten (notieren Sie das Gleichheitszeichen) Zeichen) –

2

scheint es auch möglich, sie mit grovy Konsole zu setzen:

import org.kohsuke.stapler.Stapler; 
Stapler.getCurrentRequest().getSession().setMaxInactiveInterval(TIME_IN_SECONDS) 

Aber ich denke, es wird nur für aktuelle Sitzung

+0

Ich habe diesen Ansatz verwendet und Null an die Methode übergeben, um Sitzungstimeouts für meine aktuelle Sitzung zu deaktivieren. – jstricker