这是我的菜鸟向社区提出的第一个问题。
背景:
我尝试在我自己的Jessie Debian服务器上为与Phusion Passenger和用户“ deploy”一起使用的Rails 5.0.6应用程序部署Sidekiq。我已经安装并测试了Redis 3.2.6。我选择了Systemd守护程序来启动Sidekiq作为系统服务。 这是配置:
[Unit]
Description=sidekiq
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/var/www/my_app/code
ExecStart=/bin/bash -lc 'bundle exec sidekiq -e production -C config/sidekiq.yml'
User=deploy
Group=deploy
UMask=0002
# if we crash, restart
RestartSec=4
#Restart=on-failure
Restart=always
# output goes to /var/log/syslog
StandardOutput=syslog
StandardError=syslog
# This will default to "bundler" if we don't specify it
SyslogIdentifier=sidekiq
[Install]
WantedBy=multi-user.target
这是sidekiq.yml
---
:verbose: true
:concurrency: 4
:pidfile: tmp/pids/sidekiq.pid
:queues:
- [critical, 2]
- default
- low
production:
:concurrency: 15
最后#config / initializers / sidekiq.rb:
Sidekiq.configure_server do |config|
config.redis = { url: "redis://#{ENV['SITE']}:6379/0", password: ENV['REDIS_PWD'] }
end
Sidekiq.configure_client do |config|
config.redis = { url: "redis://#{ENV['SITE']}:6379/0", password: ENV['REDIS_PWD'] }
end
如何失败 我一直在尝试解决/ var / log / syslog中发现的以下错误:
Dec 18 00:13:39 jjflo systemd[1]: Started sidekiq.
Dec 18 00:13:48 jjflo sidekiq[8159]: Cannot load `Rails.application.database_configuration`:
Dec 18 00:13:48 jjflo sidekiq[8159]: key not found: "MY_APP_DATABASE_PASSWORD"
最终导致sidekiq失败,然后重试...
再尝试一次 我尝试了以下方法,并且这有效:
cd /var/www/my_app/code
su - deploy
/bin/bash -lc 'bundle exec sidekiq -e production -C config/sidekiq.yml'
有人可以帮我把点子联系起来吗?
答案 0 :(得分:0)
环境变量显然是问题所在。自从我使用
ExecStart=/bin/bash -lc 'bundle...
-l指的是bash交互式会话,我必须进入部署用户的.bashrc才能将导出行移动到文件顶部,而不是以前的底部是,或至少在.bashrc的这一行之前:
case $- in
This post对我有很大帮助。