aboutsummaryrefslogtreecommitdiffstats
path: root/roles/solr/templates/etc/systemd/system/solr.service.j2
blob: 52ee55ffca31a1f1cd87c2b3c6b2e4d7fd0c802e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
[Unit]
Description=Apache Solr
Before=dovecot.service

[Service]
Type=simple
User=solr
LimitNOFILE=65000
LimitNPROC=65000
Restart=on-failure

ProtectSystem=strict
ReadWritePaths={{ solr_data_dir }} /var/log/solr

# Harden this java nightmare
NoNewPrivileges=yes
PrivateTmp=yes
PrivateDevices=yes
DevicePolicy=closed
ProtectSystem=strict
ProtectHome=yes
ProtectControlGroups=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
RestrictNamespaces=yes
RestrictRealtime=yes
RestrictSUIDSGID=yes
LockPersonality=yes

WorkingDirectory={{ solr_install_dir }}/server
LogsDirectory=solr

Environment=SOLR_HOME={{ solr_data_dir }}
Environment=SOLR_CONF_DIR=${SOLR_HOME}/server/solr/configsets/_default/conf
Environment=JVM_ARGS=
Environment=JVM_GC_ARGS="-XX:+UseG1GC -XX:+PerfDisableSharedMem -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=250 -XX:+UseLargePages -XX:+AlwaysPreTouch -XX:+ExplicitGCInvokesConcurrent"
Environment=JVM_HEAP_SIZE=512m
Environment=JETTY_HOST=localhost
Environment=JETTY_PORT=8983
Environment=LOG4J_PROPS={{ solr_install_dir }}/server/resources/log4j2.xml
EnvironmentFile=/etc/sysconfig/solr

ExecStart=java -server \
  $JVM_ARGS \
  -Xmx${JVM_HEAP_SIZE} \
  $SOLR_OPTS \
  $JVM_GC_ARGS \
  -XX:+CrashOnOutOfMemoryError \
  -Dlog4j.configurationFile=${LOG4J_PROPS} \
  -Dsolr.log.dir=/var/log/solr \
  -Djetty.host=${JETTY_HOST} \
  -Djetty.port=${JETTY_PORT} \
  -Djetty.home={{ solr_install_dir }}/server \
  -Dsolr.solr.home=${SOLR_HOME} \
  -Dsolr.data.home= \
  -Dsolr.install.dir={{ solr_install_dir }} \
  -Dsolr.default.confdir=${SOLR_CONF_DIR} \
  -Dlog4j2.formatMsgNoLookups=true \
  -jar start.jar --module=http --module=gzip

[Install]
WantedBy=multi-user.target