diff --git a/Documentation/config-gerrit.txt b/Documentation/config-gerrit.txt index 5c3e3f9e23..d796fa406d 100644 --- a/Documentation/config-gerrit.txt +++ b/Documentation/config-gerrit.txt @@ -2254,6 +2254,14 @@ to permit fast restarts. + By default, true. +[[httpd.inheritChannel]]httpd.inheritChannel:: ++ +If true, permits the daemon to inherit its server socket channel +from fd0/1(stdin/stdout). When set to true, the server can be socket +activated via systemd or xinetd. ++ +By default, false. + [[httpd.requestHeaderSize]]httpd.requestHeaderSize:: + Size, in bytes, of the buffer used to parse the HTTP headers of an diff --git a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java index 9d27170547..1ee716c15b 100644 --- a/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java +++ b/gerrit-pgm/src/main/java/com/google/gerrit/pgm/http/jetty/JettyServer.java @@ -263,7 +263,7 @@ public class JettyServer { } catch (URISyntaxException e) { throw new IllegalArgumentException("Invalid httpd.listenurl " + u, e); } - + c.setInheritChannel(cfg.getBoolean("httpd", "inheritChannel", false)); c.setReuseAddress(reuseAddress); connectors[idx] = c; } diff --git a/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.service b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.service new file mode 100644 index 0000000000..750dbb4ab6 --- /dev/null +++ b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.service @@ -0,0 +1,17 @@ +# Systemd unit file for gerrit + +[Unit] +Description=Gerrit Code Review +After=syslog.target network.target + +[Service] +Type=simple +WorkingDirectory=/opt/gerritsrv/ +Environment=GERRIT_HOME=/opt/gerritsrv/gerrit/ JAVA_HOME=/opt/jdk1.8.0_45/ +ExecStart=/usr/bin/java -Xmx1024m -jar ${GERRIT_HOME}/bin/gerrit.war daemon -d ${GERRIT_HOME} +User=gerritsrv +SyslogIdentifier=GerritCodeReview +StandardInput=socket + +[Install] +WantedBy=multi-user.target diff --git a/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.socket b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.socket new file mode 100644 index 0000000000..cee5d12c9b --- /dev/null +++ b/gerrit-pgm/src/main/resources/com/google/gerrit/pgm/systemd/gerrit.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Gerrit HTTP socket + +[Socket] +ListenStream=80 +Accept=no + +[Install] +WantedBy=sockets.target