Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have made some changes at Solr Schema file and I see I 'am forced to restart SolR in order to have Solr running with new schema updates.

This is hosted on a server where solr is running from a start.jar file but I'am not sure how it was started(maybe with nohup)

I have found a way to stop SolR from another question(http://stackoverflow.com/questions/2150767/how-to-start-solr-automatically):

kill `ps uax | grep -i "java -jar start.jar" | head -n 1 | awk '{print $2}'`

After this, I start SolR with "java -jar start.jar".

Is this a correct way to do the restart or is there built-in/better way to restart the jar?

share|improve this question
add comment

migrated from stackoverflow.com Aug 25 '11 at 1:46

This question came from our site for professional and enthusiast programmers.

2 Answers

At Websolr, we use a combination of a custom init.d script plus Monit to start Solr and ensure that it stays running.

That said, for a simpler self-hosted setup, I would recommend using Upstart to start and stop Solr, if your system has Upstart available. Upstart scripts have the benefit of being fairly simple, and Upstart does a good job restarting processes in the event they crash. Plus the start and stop commands (start and stop, respectively) are pretty easy to remember for the next time you need to make Solr aware of new configs.

Here is a good blog post covering starting Solr with Upstart. I've copied their upstart script below; be sure to update the relevant paths to match your system:

description "Solr Search Server"

# Make sure the file system and network devices have started before
# we begin the daemon
start on (filesystem and net-device-up IFACE!=lo)

# Stop the event daemon on system shutdown
stop on shutdown

# Respawn the process on unexpected termination
respawn

# The meat and potatoes
exec /usr/bin/java -Xms128m -Xmx256m -Dsolr.solr.home=/path/to/solr/home -Djetty.home=/path/to/jetty -jar /path/to/jetty/start.jar >> /var/log/solr.log 2>&1
share|improve this answer
add comment

You can try this approach http://wiki.apache.org/solr/CoreAdmin#RELOAD.

Using a command like this

http://localhost:8983/solr/admin/cores?action=RELOAD&core=core0

will just reload all your configuration files and you will not have problems in doing SOLR queries querying while the core is restarted.

share|improve this answer
    
This doesn't work in a standard installation. Probably I need to enable SolR multicore features to be able to use this kind of reload. –  Orlando Aug 25 '11 at 15:51
    
It worked for me: My solr.xml cores configuration looks like this: <cores adminPath="/admin/cores" defaultCoreName="collection1"> <core name="collection1" instanceDir="." /> </cores> I used this link to reload core: localhost:8983/solr/admin/… –  Dorin Aug 26 '11 at 10:23
    
Using the included Jetty (start.jar) seems a kludge. Consider setting it up in Tomcat in a multicore configuratiob. I included instructions in stackoverflow.com/questions/7188816/… –  aitchnyu Aug 26 '11 at 10:49
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.