Created
January 9, 2017 08:18
-
-
Save hammady/3d7b5964c7b0f90997865ebef40bf5e1 to your computer and use it in GitHub Desktop.
systemd service file for Apache SOLR
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# put this file in /etc/systemd/system/ as root | |
# below paths assume solr installed in /opt/solr, SOLR_PID_DIR is /data | |
# and that all configuration exists in /etc/default/solr.in.sh which is the case if previously installed as an init.d service | |
# change port in pid file if differs | |
# note that it is configured to auto restart solr if it fails (Restart=on-faliure) and that's the motivation indeed :) | |
# to switch from systemv (init.d) to systemd, do the following after creating this file: | |
# sudo systemctl daemon-reload | |
# sudo service solr stop # if already running | |
# sudo systemctl enable solr | |
# systemctl start solr | |
# this was inspired by https://confluence.t5.fi/display/~stefan.roos/2015/04/01/Creating+systemd+unit+(service)+for+Apache+Solr | |
[Unit] | |
Description=Apache SOLR | |
After=syslog.target network.target remote-fs.target nss-lookup.target systemd-journald-dev-log.socket | |
Before=multi-user.target graphical.target nginx.service | |
Conflicts=shutdown.target | |
[Service] | |
User=solr | |
PIDFile=/data/solr-8983.pid | |
Environment=SOLR_INCLUDE=/etc/default/solr.in.sh | |
ExecStart=/opt/solr/bin/solr start | |
ExecStop=/opt/solr/bin/solr stop | |
Restart=on-failure | |
[Install] | |
WantedBy=multi-user.target graphical.target |
seems like Restart=on-failure
makes Solr restart forever. Did it work for you?
Note you will probably need to add the following in your [Service]
stanza:
LimitNOFILE=65000
LimitNPROC=65000
If anyone else drops by looking for an updated service file, here is my definition and my rationale http://archive.vn/ld10Q#selection-135.2887-135.3889
[Unit]
Description=Apache SOLR
[Service]
Type=forking
User=solr
Environment=SOLR_INCLUDE=/etc/default/solr.in.sh
ExecStart=/opt/solr/bin/solr start
ExecStop=/opt/solr/bin/solr stop
Restart=on-failure
LimitNOFILE=65000
LimitNPROC=65000
TimeoutSec=180s
[Install]
WantedBy=multi-user.target
Props to @wryfi for the limit definitions, TIL
Thanks @mhitza , works great in Debian 11.
Thanks @mhitza
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Note that it delays nginx.service in case it is used as reverse proxy for the solr upstream