daemon - Gerrit network server


java -jar gerrit.war daemon
  -d <SITE_PATH>
  [--enable-httpd | --disable-httpd]
  [--enable-sshd | --disable-sshd]


Runs the Gerrit network daemon on the local system, configured as per the local copy of gerrit.config.

The path to gerrit.config is read from the metadata database, which requires that all slaves (and master) reading from the same database must place gerrit.config at the same location on the local filesystem. However, any option within gerrit.config, including gerrit.basePath may be set to different values.



Location of the gerrit.config file, and all other per-site configuration data, supporting libraries and log files.


Enable (or disable) the internal HTTP daemon, answering web requests. Enabled by default when --slave is not used.


Enable (or disable) the internal SSH daemon, answering SSH clients and remotely executed commands. Enabled by default.


Run in slave mode, permitting only read operations by clients. Commands which modify state such as receive-pack (creates new changes or updates existing ones) or review (sets approve marks) are disabled.

This option automatically implies '--enable-sshd'.


Send log messages to the console, instead of to the standard log file '$site_path/logs/error_log'.


Don’t start the default Gerrit UI. May be useful when Gerrit is run with an alternative UI.


Run init before starting the daemon. This will create a new site or upgrade an existing site.


Start Gerrit Inspector on the console, a built-in interactive inspection environment to assist debugging and troubleshooting of Gerrit code.

This options requires 'jython.jar' from the Jython distribution to be present in '$site_path/lib' directory.


This command can only be run on a server which has direct connectivity to the metadata database, and local access to the managed Git repositories.


Error and warning messages from the server are automatically written to the log file under '$site_path/logs/error_log'. This log file is automatically rotated at 12:00 AM GMT each day, allowing an external log cleaning service to clean up the prior logs.


Slave daemon caches can quickly become out of date when modifications are made on the master. The following configuration is suggested in a slave to reduce the maxAge for each cache entry, so that changes are recognized in a reasonable period of time:

[cache "accounts"]
  maxAge = 5 min
[cache "diff"]
  maxAge = 5 min
[cache "groups"]
  maxAge = 5 min
[cache "projects"]
  maxAge = 5 min
[cache "sshkeys"]
  maxAge = 5 min

and if LDAP support was enabled, also include:

[cache "ldap_groups"]
  maxAge = 5 min
[cache "ldap_usernames"]
  maxAge = 5 min

Automatic cache coherency between master and slave systems is planned to be implemented in a future version.