Upstart 重启命令不会加载新更新的作业配置(solr)

Upstart 重启命令不会加载新更新的作业配置(solr)

这是我的 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 的实例,并在命令完成时将作业的状态输出到标准输出。

正在重新启动的作业实例将保留其原始配置。

要让新实例使用最新的作业配置运行,请停止该作业,然后重新启动它。

相关内容