Jenkins Features Controlled with System Properties
Jenkins has several "hidden" features that can be enabled with system properties. System properties are defined by passing
-Dproperty=value to the
java command line to start Jenkins. Make sure to pass all of these arguments before the
-jar argument, otherwise they will be ignored. Example:
The following table lists the properties and the version of Jenkins they were introduced in.
- Property - Java property name
- Default - Default value if not explicitly set
- Version - The version of Jenkins the property was introduced in
- Notes - Other notes
Properties in Jenkins Core
2.44 / 2.32.2
Whether to load unsigned console notes (see SECURITY-382 on Jenkins Security Advisory 2017-02-01)
Actually works since 2.98/2.89.3
How many KB of console log to show in default console view
1073741824 (up to Jenkins 2.39)
If there's less than this amount of free disk space, in bytes, on the disk with the Jenkins home directory, and the disk is 90% or more full, a warning will be shown to administrators
Set to true if the servlet container doesn't support chunked encoding
Set to "true" to disable DNS multicast
Max. number of operations to validate a file mask (e.g. pattern to archive artifacts).
Allows tweaking the URL displayed at the bottom of Jenkins' UI
Number of seconds between reloads when Auto Refresh is enabled
Specify full class name for Lifecycle implementation to override default
|hudson.logging.LogRecorderManager.skipPermissionCheck||false||2.121.3 and 2.138||Disable security hardening for LogRecorderManager Stapler access|
Use shorter but cryptic names in matrix build workspace directories. Avoids problems with 256 character limit on paths in Cygwin, path depths problems on Windows, and shell metacharacter problems with label expressions on most platforms. See JENKINS-25783.
|hudson.model.AbstractItem.skipPermissionCheck||false||2.121.3 / 2.138||Disable security hardening related to Stapler routing for AbstractItem|
The number of minutes after which to try and rotate the log file used by any AsyncAperiodicWork extension. For fine-grained control of a specific extension you can use the FullyQualifiedClassName.logRotateMinutes system property to only affect a specific extension.
When starting a new run of any AsyncAperiodicWork extension, if this value is non-negative and the existing log file is larger than the specified number of bytes then the log file will be rotated. For fine-grained control of a specific extension you can use the FullyQualifiedClassName.logRotateSize system property to only affect a specific extension.
The number of minutes after which to try and rotate the log file used by any AsyncPeriodicWork extension. For fine-grained control of a specific extension you can use the FullyQualifiedClassName.logRotateMinutes system property to only affect a specific extension.
When starting a new run of any AsyncPeriodicWork extension, if this value is non-negative and the existing log file is larger than the specified number of bytes then the log file will be rotated. For fine-grained control of a specific extension you can use the FullyQualifiedClassName.logRotateSize system property to only affect a specific extension.
sandbox; default-src 'none'; image-src 'self'; style-src 'self';
Determines the Content Security Policy header sent for static files served by Jenkins. See Configuring Content Security Policy for more details.
Suppress the periodic download of data files for plugins
Matrix parent job and other flyweight tasks (e.g. Build Flow plugin) won't consume an executor when true. Unused since 1.598, flyweight support is now always enabled
Exit Jenkins right after loading
|jenkins.model.Jenkins.exitCodeOnRestart||5||2.102||When using the -Dhudson.lifecycle=hudson.lifecycle.ExitLifecycle, exit using this exit code when Jenkins is restarted|
Log startup timing info
Specifies the default TCP slave agent port unless/until configured differently on the UI. -1 to disable, 0 for random port, other values for fixed port. Used to be 0 by default before Jenkins 2.0
2.19.4 and 2.24
If true, enforces the specified
Loads job configurations in parallel on startup
Load statistics clock cycle in milliseconds
Decay ratio for every clock cycle in node utilization charts
Font used for load statistics (see Java documentation on how the value is decoded)
1.651.2 / 2.3
If true, not discard parameters for builds that are not defined on the job. Enabling this can be unsafe
1.651.2 / 2.3
Comma-separated list of additional build parameter names that should not be discarded even when not defined on the job.
1.577 up to 1.647
Defines the refresh period for the internal queue cache (in milliseconds). The greater period workarounds web UI delays on large installations, which may be caused by locking of the build queue by build executors. Downside - builds appear in the queue with a noticeable delay.
|hudson.model.Queue.Saver.DELAY_SECONDS||60||2.109||Maximal delay of a save operation when content of Jenkins queue changes. This works as a balancing factor between queue consistency guarantee in case of Jenkins crash (short delay) and decreasing IO activity based on Jenkins load (long delay).|
More artifacts than this will use tree view or simple link rather than listing out artifacts
More artifacts than this will show a simple link to directory browser rather than showing artifacts in tree view
name of the folder within the slave root directory to contain workspaces
Allow overriding the implementation class for update center. Useful for custom war distributions with a different update center implementation. Cannot be used for plugins.
Configure a different ID for the default update site. Useful for custom war distributions or externally provided UC data files
When true, don't automatically check for new versions
|hudson.model.UpdateCenter.skipPermissionCheck||false||2.121.3 / 2.138||Disable security hardening related to Stapler routing for UpdateCenter|
1.312 or so?
Set to true to opt out of usage statistics collection, independent of UI option.
When true, does not check auth realm for existence of user if there's a record in Jenkins. Unsafe, but may be used on some instances for service accounts
2.44 / 2.32.2
Whether admins accessing
1.651.2 / 2.3
When false, skips part of the fix that tries to determine whether a given user ID exists, and if so, doesn't consider users with the same full name during resolution.
|hudson.model.User.skipPermissionCheck||false||2.121.3 / 2.138||Disable security hardening related to Stapler routing for User|
Don't clean up old workspaces on slave nodes
How often workspace cleanup should run, in hours.
Unused workspaces are retained for this many days before qualifying for deletion.
True to disable ZFS monitor on Solaris
|hudson.PluginManager.skipPermissionCheck||false||2.121.3 / 2.138||Disable security hardening related to Stapler routing for PluginManager|
|(empty)||1.649||Localtion of the base directory for all exploded .hpi/.jpi plugins. By default the plugins will be extracted under $JENKINS_HOME/plugins/.|
Allow plugins to be loaded into a different environment, such as an existing DI container like Plexus; specify full class name here to override default ClassicPluginStrategy
Connection timeout applied to connections e.g. to the update site.
Up to 1.354
Control a slave based on a schedule
Useful with ancient versions of CVS that don't support the -d option in the log command
|hudson.search.Search.skipPermissionCheck||false||2.121.3 / 2.138||Disable security hardening related to Stapler routing for Search|
2.46 / 2.32.3
If set to true, restore pre-2.46 behavior of sending HTTP headers on "access denied" pages listing group memberships.
The Artifacts permission allows to control access to artifacts; When this property is unset or set to false, access to artifacts is not controlled
.crumb (Jenkins 1.x), Jenkins-Crumb (Jenkins 2.0+
Parameter name that contains a crumb value on POST requests
The ExtendedReadPermission allows read-only access to "Configure" pages; can also enable with extended-read-permission plugin
|hudson.security.HudsonPrivateSecurityRealm.ID_REGEX||2.121 and 2.107.3|
Regex for legal user names in Jenkins user database. See https://jenkins.io/security/advisory/2018-05-09/#SECURITY-786
LDAP filter to look for groups by their names
The WipeOut permission allows to control access to the "Wipe Out Workspace" action, which is normally available as soon as the Build permission is granted
(Deprecated since 2.37) Frequency (in minutes) of pings between the master and slaves
Frequency of pings between the master and slaves, in seconds
Timeout for each ping between the master and slaves, in seconds
When concurrent builds is enabled, a unique workspace directory name is required for each concurrent build. To create this name, this token is placed between project name and a unique ID, e.g. "my-project@123".
When true, builds don't fail when there is nothing to archive
When true, jobs associated through fingerprints are added to the dependency graph, even when there is no configured upstream/downstream relationship between them.
Number of lines of console output to include in emails
Host name that Jenkins advertises to its clients. Especially useful when running Jenkins behind a reverse proxy.
Port that Jenkins advertises to its clients. Especially useful when running Jenkins behind a reverse proxy.
Experimental nested views feature
Milliseconds waiting for polling executor before trigger reports it is clogged
Port for UDP multicast broadcast (set to -1 to disable)
Pass blame information to downstream jobs
True to disable creation of symbolic links in job/builds directories
|hudson.Util.useNativeChmodAndMode||false||2.93||True to use native (JNA/JNR) implementation to set file permissions instead of NIO|
True to disable cleanup of child processes
Number of log entries in loggers available on the UI at
Force a particular crypto provider; with Glassfish Enterprise set value to
True to use exec of "ln" binary to create symbolic links instead of native code
The number of times to attempt to delete files/directory trees
The time (in milliseconds) to wait between attempts to delete files when retrying. This has no effect unless hudson.Util.maxFileDeletionRetries is greater than 1.
If this flag is set to true then we will request a garbage collection after a deletion failure before we next retry the delete. It is ignored unless hudson.Util.maxFileDeletionRetries is greater than 1.
2.32 and 2.19.3
2x of CPU
During start of Jenkins, loading of jobs in parallel have a fixed number of threads by default (twice the CPU). To make Jenkins load time 8x faster, increase it to 8x. For example, 24 CPU Jenkins Master host use this: -Dhudson.InitReactorRunner.concurrency=192
NOTE: This property is only effective the first time you run Jenkins in given JENKINS_HOME.
NOTE: The user will not be able to use that token since it's only displayed to the creator, once.
True to show API tokens for users to administrators on the user configuration page. This was set to false as part of SECURITY-200
Whether to send
true to disable Nio for JNLP slaves
Allows to configure the SSHD client idle timeout (value in milliseconds). Default value is 10min (600000ms).
|hudson.triggers.SafeTimerTask.logsTargetDir||$JENKINS_HOME/logs||2.114||Allows to move the logs usually found under |
The configuration of a given job is located under
This option allows you to store builds elsewhere, which can be useful with finer-grained backup policies, or to store the build data on a faster disk such as an SSD.
The following placeholders are supported for this value:
For instance, if you would like to store builds outside of Jenkins home, you can use a value like the following:
This used to be a UI setting, but was removed in 2.119 as it did not support migration of existing build records and could lead to build-related errors until restart.
Allows to change the directory layout for the job workspaces on the master node. See
No compatibility guarantee
In general, these switches are often experimental in nature, and subject to change without notice. If you find some of those useful, please file a ticket to promote it to the official feature.
Properties in other components
Particular Jenkins component have their own release cycle and documentation. In particular cases such components also include System Properties.
- Remoting - Jenkins Communication Layer: Remoting Configuration