我有一个sidekiq worker,它执行一些JRuby代码来连接和从远程服务器提取数据。通过在终端上运行它可以正常工作:
bundle exec sidekiq
但是在生产方面我想通过传递-d
选项来运行后台工作人员:
bundle exec sidekiq -d -L log/sidekiq.log
它不起作用并返回以下内容:
ObjectSpace is disabled; each_object will only work with Class, pass -X+O to enable
我需要传递任何其他选项才能在后台运行sidekiq?
答案 0 :(得分:1)
即使您启用了ObjectSpace,它也会失败,因为您无法在JRuby中进行分叉。
您无法使用-d
选项,请使用系统替代方案,例如nohup
答案 1 :(得分:0)
使用systemd或upstart代替手工守护。
https://github.com/mperham/sidekiq/wiki/Deployment#daemonization