从命令行中正常停止Apache Solr

我使用jetty使用下面的cmd行来运行Solr:java -jar start.jar&

我怎样才能优雅地停止solr的这个实例?

psfind进程ID并发送信号停止使用kill – 我相信HUPINT信号将允许java进程正常退出; testing确认。

更好的是,你应该真正使用适当的服务来运行Solr – Tomcat可以做到这一点,或Jetty可以作为服务运行。

只是为了澄清以前的答案,在命令:

 java -DSTOP.PORT=8001 -DSTOP.KEY=stop_jetty -jar start.jar 

-DSTOP.PORT=port应该指定一个可用的端口(不同于用于Jetty的solr_home/etc/jetty.xmlconfiguration的端口)。 我试图在下一步开始它:

 nohup java -DSTOP.PORT=8001 -DSTOP.KEY=stop_jetty -jar start.jar & 

只需添加--stop参数来停止它:

 nohup java -DSTOP.PORT=8001 -DSTOP.KEY=stop_jetty -jar start.jar --stop & 

在这两种情况下工作正常,但仍然不够优雅。

启动它(定义stop.port和stop.keyvariables):

 java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar 

那么你可以阻止它:

 java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop 

资源