4

Here my upstart config for solr which is located under /etc/init/solr.conf

# /etc/init/solr.conf

description "Starts Solr server"

respawn
start on startup solr_push

script
        echo "Starting solr server..."
        cd /opt/solr/solr-4.2.1/example
        exec java -Xms50M -Xmx80M -Djava.util.logging.config.file=/etc/solr/logging.properties -Dsolr.solr.home=/etc/solr -jar start.jar >> /var/log/solr/solr-console.log 2>&1
end script

When I update this upstart config, for example changing java options from -Xmx80M to -Xmx70M and then do

sudo restart solr
ps aux | grep solr

I still see -Xm80M over there, even though solr process was started with new process id.

When I do sudo stop solr and then sudo start solr manually - everything looks as expected and I can see new values in the ps aux.

I was under impression that upstart restart does stop and start behind the scenes, but then why results of maunal stop and start differ from restart?

Please advice, maybe I'm doing something incorrectly?

quanta
  • 50,327
  • 19
  • 152
  • 213
gansbrest
  • 785
  • 1
  • 8
  • 17

1 Answers1

7

From "man initctl"...

restart JOB [KEY=VALUE]...

Requests that an instance of the named JOB be restarted, outputting the status of the job to standard output when the command completes.

The job instance being restarted will retain its original configuration.

To have the new instance run with the latest job configuration, stop the job and then start it again instead.

jamesodhunt
  • 849
  • 5
  • 4