A while ago I found a solution to run Solr with supervisord, without leaking java processes, which you get when you use the generated solr-instance
script with supervisord.
You need something like this in your supervisord.conf:
[program:solr] directory = ${solr-instance:jetty-destination}/.. command = java -jar start.jar autostart = true autorestart = true
The key is the directory
option. With that the command
is executed in that directory, which starts Solr correctly and doesn’t leave java processes when stopping it with supervisord.
I discovered today that Solr, when used with collective.recipe.solrinstance, by default logs every query to stdout.
The solution is to change the command
like the following:
command = java -Djava.util.logging.config.file=${buildout:directory}/etc/solr-logging.properties -jar start.jar
Now you just need to add the solr-logging.properties
file with something like this as content:
# Default global logging level: .level = WARNING