这是我的 solr upstart 配置,位于 /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
当我更新此 upstart 配置时,例如将 java 选项从 更改 -Xmx80M
为 -Xmx70M
然后执行
sudo restart solr
ps aux | grep solr
-Xm80M
尽管 solr 进程是使用新的进程 id 启动的,但我仍然能看到那里。
当我这样做sudo stop solr
然后sudo start solr
手动 - 一切看起来都如预期,并且我可以在中看到新的值ps aux
。
我印象中 upstart restart 确实会在后台停止和启动,但是为什么手动停止和启动的结果与重启不同呢?
请提供建议,也许我做错了什么?
答案1
从 ” man initctl
”...
重新启动 JOB [KEY=VALUE]...
请求重新启动命名 JOB 的实例,并在命令完成时将作业的状态输出到标准输出。
正在重新启动的作业实例将保留其原始配置。
要让新实例使用最新的作业配置运行,请停止该作业,然后重新启动它。