我正在使用sunspot_solr gem来启动和停止 Solr 的本地实例。我使用以下命令来启动它:
rake sunspot:solr:start
和以下命令停止它:
rake sunspot:solr:stop
但是,停止不起作用。我注意到 pids 文件夹中写入的 pid 不是正确的。
ps -ef | grep 'java'
当我开始时,我可以在命令中看到以下输出:
1000 4758 4752 0 20:32 ? 00:00:00 sh -c java -Djetty.port\=8982 -Dsolr.data.dir\=/home/panayotis/my_documents/ezMTA/solr/data/development -Dsolr.solr.home\=/home/panayotis/my_documents/ezMTA/solr -Djava.util.logging.config.file\=/tmp/logging.properties20120902-4758-13patuu -jar start.jar
1000 4761 4758 7 20:32 ? 00:00:01 java -Djetty.port=8982 -Dsolr.data.dir=/home/panayotis/my_documents/ezMTA/solr/data/development -Dsolr.solr.home=/home/panayotis/my_documents/ezMTA/solr -Djava.util.logging.config.file=/tmp/logging.properties20120902-4758-13patuu -jar start.jar
这意味着真正的服务器进程是 pid "4761" 的那个。进程“4758”仅用于在 shell 中启动服务器。
当我 cat pid 文件时,我看到:
cat solr/pids/development/sunspot-solr-development.pid
4758
这意味着rake sunspot:solr:stop
正在杀死“4758”并让“4761”启动并运行。