Features controlled by system properties

Jenkins Features Controlled with System Properti=
es

Jenkins has several "hidden" features that can be enabled with system pr=
operties. System properties are defined by passing -Dproperty=3Dvalue=
to the java command line to start Jenkins. Make sure t=
o pass all of these arguments before the -jar=
argument, otherwise they will be ignored. Example:

=20

java -Dhudson.footerURL=3Dhttp://example.org -jar jenkins.war

=20

The following table lists the properties and the version of Jenkins they=
were introduced in.

The number of minutes after which to try and =
rotate the log file used by any AsyncAperiodicWork extension. For fine-grai=
ned control of a specific extension you can use the FullyQualifiedClass=
Name.logRotateMinutes system property to only affect a specific extens=
ion.

It is not anticipated that you will ever need to change these defaults

hudson.model.AsyncAperiodicWork.logRotateSize=

-1

1.651

When starting a new run of any AsyncAperiodic=
Work 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. It is not antic=
ipated that you will ever need to change these defaults

hudson.model.AsyncPeriodicWork.logRotateMinut=
es

1440

1.651

The number of minutes after which to try and =
rotate the log file used by any AsyncPeriodicWork extension. For fine-grain=
ed control of a specific extension you can use the FullyQualifiedC=
lassName.logRotateMinutes system property to only affect a specific ex=
tension. It is not anticipated that y=
ou will ever need to change these defaults

hudson.model.AsyncPeriodicWork.logRotateSize<=
/p>

-1

1.651

When starting a new run of any AsyncPeriodicW=
ork extension, if this value is non-negative and the existing log file is l=
arger 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. It is not antici=
pated that you will ever need to change these defaults

If true, not discard parameters for builds th=
at are not defined on the job. Enabling this can be unsafe=
Since Jenkins 2.40, if set to false, wil=
l not log a warning message that parameters were defined but ignored.

=
td>

hudson.model.ParametersAction.safeParameters<=
/p>

(empty)

1.651.2 / 2.3

Comma-separated list of additional build para=
meter names that should not be discarded even when not defined on the job.<=
/p>

hudson.model.Queue.cacheRefreshPeriod

1000

1.577 up to 1.647

Defines the refresh period for the internal q=
ueue cache (in milliseconds). The greater period workarounds web UI delays =
on large installations, which may be caused by locking of the build queue b=
y build executors. Downside - builds appear in the queue with a noticeable =
delay.

When concurrent builds is enabled, a unique w=
orkspace directory name is required for each concurrent build. To create th=
is name, this token is placed between project name and a unique ID, e.g. "m=
y-project@123".

hudson.tasks.ArtifactArchiver.warnOnEmpty

=

false

When true, builds don't fail when there is no=
thing to archive

hudson.tasks.Fingerprinter.enableFingerprints=
InDependencyGraph

false

1.430

When true, jobs associated through fingerprin=
ts are added to the dependency graph, even when there is no configured upst=
ream/downstream relationship between them.

hudson.tasks.MailSender.maxLogLines

250

Number of lines of console output to include =
in emails

hudson.triggers.SafeTimerTask.logs=
TargetDir

$JENKINS_HOME/logs

2.114

Allows to move the logs usually fo=
und under $JENKINS_HOME/logs to another location. Beware that =
no migration is handled if you change it on an existing instance.

hudson.TcpSlaveAgentListener.hostName

n/a

Host name that Jenkins advertises to its clie=
nts. Especially useful when running Jenkins behind a reverse proxy.

True to use native (JNA/JNR) imple=
mentation to set file permissions instead of NIO

hudson.util.ProcessTree.disable

false

True to disable cleanup of child processes

hudson.util.RingBufferLogHandler.defaultSize<=
/p>

256

1.563

Number of log entries in loggers available on=
the UI at /log/

hudson.util.Secret.provider

1.360

Force a particular crypto provider; with Glas=
sfish Enterprise set value to SunJCE to workaround a known issue.

=

hudson.Util.symlinkEscapeHatch

false

True to use exec of "ln" binary to create sym=
bolic links instead of native code

hudson.Util.maxFileDeletionRetries

3

2.2

The number of times to attempt to delete file=
s/directory trees before giving up and th=
rowing an exception. Specifying a value l=
ess than 1 is invalid and will be treated as if a value of 1 (i.e. one atte=
mpt, no retries) was specified. See JENKINS-10113 and =
JENKINS-15331.

hudson.Util.deletionRetryWait

100

2.2

The time (in milliseconds) to wait between at=
tempts to delete files when retrying. This has no effect unless hudson.=
Util.maxFileDeletionRetries is greater than 1. If zero, there will be no delay between attempts. If negative, t=
he delay will be a (linearly) increasing multiple of this value between att=
empts.

hudson.Util.performGCOnFailedDelete

false

2.2

If this flag is set to true then we will requ=
est a garbage collection after a deletion failure before we next retry the =
delete. It is ignored unless hudson.Util.maxFileDeletionRetries is=
greater than 1. Setting this flag to tru=
e may resolve some problems on Windows, and also for directory tre=
es residing on an NFS share, but it can have a negative impact on performan=
ce and may have no effect at all (GC behavior is JVM-specific). Warning: This should only ever be used if you find=
that your builds are failing because Jenkins is unable to delete files, th=
at this failure is because Jenkins itself has those files locked "open", an=
d even then it should only be used on slaves with relatively few executors =
(because the garbage collection can impact the performance of all job execu=
tors on that slave). Setting this fla=
g is a act of last resort - it is not recommended, and should not be used o=
n your main Jenkins server unless you can tolerate the performance impact=
em>.

jenkins.CLI.disabled

false

2.32 and 2.19.3

true to disable Jenkins CLI via =
JNLP and HTTP (SSHD can still be enabled)

jenkins.mo=
del.Jenkins.buildsDir

${ITEM_ROOTDIR}/builds

2.119

The configuration of a given job is located under $JENKINS_HO=
ME/jobs/[JOB_NAME]/config.xml and its builds are under $JENKINS_HOME/jobs/[JOB_NAME]/builds by default.

This option allows you to store builds elsewhere, which can be useful wi=
th finer-grained backup policies, or to store the build data on a faster di=
sk such as an SSD.

${ITEM_FULL_NAME} =E2=80=93 The full name of the item,=
with file system unsafe characters replaced by others.${=
ITEM_FULLNAME} =E2=80=93 See above, but does not replace unsafe ch=
aracters. This is a legacy option and should not be used.

For instance, if you would like to store builds outside of Jenkins home,=
you can use a value like the following: /some_other_root/builds=
/${ITEM_FULL_NAME}

This used to be a UI setting, but was removed in 2.119 as it did not sup=
port migration of existing build records and could lead to build-related er=
rors until restart.

true to enable crumb =
proxy compatibility when running the Setup Wizard for the first time.

jenkins.mo=
del.Jenkins.workspacesDir

${JENKINS_HOME}/workspace/${ITEM_FULL_NAME}

2.119

Allows to change the directory layout for the=
job workspaces on the master node. See jenkins.model.Jenkins.bu=
ildsDir for supported placeholders.

jenkins.InitReactorRunner.concurrency

2x of CPU

During sta=
rt of Jenkins, loading of jobs in parallel have a fixed number of threads b=
y 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=3D192

jenkins.install.runSetupWizard

undefined

2.0

Set to false to skip install wiz=
ard. Note that this leaves Jenkins unsecured by default. Development-mode only: Set to true to not skip=
showing the setup wizard during Jenkins development.

NOTE: This prop=
erty is only effective the first time you run Jenkins in given JENKINS_HOME=
.

jenkins.security.ApiTokenProperty.=
adminCanGenerateNewTokens

false

2.129

true to allow user=
s with ADMINISTER permission to create API tokens using t=
he new system for any user.

NOTE: The user will not be able to use th=
at token since it's only displayed to the creator, once.

jenkins.security.ApiTokenProperty.showTokenTo=
Admins

false

1.638

True to show API tokens for users to administ=
rators on the user configuration page. This was set to false as part of SECURITY-200

=

jenkins.security.FrameOptionsPageDecorator.en=
abled

true

1.581

Whether to send X-Frame-Options: sameor=
igin header, set to false to disable and make Jenkins embeddable