![从命令行正常停止 Apache Solr](https://linux22.com/image/798848/%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%AD%A3%E5%B8%B8%E5%81%9C%E6%AD%A2%20Apache%20Solr.png)
我使用 jetty 运行 Solr,使用以下 cmd 行:java -jar start.jar &
我怎样才能正常停止该 solr 实例?
答案1
找到带有 id 的进程ps
,并向其发送信号以停止使用kill
- 我相信HUP
或INT
信号将允许 java 进程正常退出;进行测试以确认。
更好的是,您应该真正使用适当的服务来运行 Solr - Tomcat 可以做到这一点,或者可以让 Jetty 作为服务运行。
答案2
只是为了澄清前面的答案,在命令中:
java -DSTOP.PORT=8001 -DSTOP.KEY=stop_jetty -jar start.jar
应-DSTOP.PORT=port
指定可用的端口(与 Jetty 使用的配置端口不同solr_home/etc/jetty.xml
)。我尝试了以下方式来启动它:
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 &
两种情况下都可以正常工作但看起来仍然不够美观。
答案3
启动它(定义 stop.port 和 stop.key 变量):
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar
那么你可以停止它:
java -DSTOP.PORT=8080 -DSTOP.KEY=stop_jetty -jar start.jar --stop