我正在尝试使用工头从我的 Rails 应用程序中导出新贵脚本,但我不想使用 sudo 来执行此操作。我看到我使用的 Ubuntu 12.04 支持 userjob http://upstart.ubuntu.com/cookbook/#user-job所以我启用了它。它已通过我放置的测试脚本成功启用,~/.init
因此我尝试bundle exec foreman export upstart ~/.init -a myapp -l log -u myuser
并将我的所有工头任务导出到 ~/.init。现在,当我运行start myapp
它时,它可以工作,但是我的瘦实例根本无法启动,我不知道为什么。也许它与使用 RVM 用户安装有关。有没有办法调试这个?谢谢。
问问题
692 次
1 回答
1
你可以设置
console log
在您的新贵脚本中,输出应显示在日志文件中。
根据最近的新贵食谱,会话作业输出将出现在$XDG_CACHE_HOME/upstart/<jobname>
,(应该回退到$HOME/.cache
)。
或者,您可以使用--logdir
upstart 命令的选项告诉它在其他地方登录。
由于您的问题是几个月前的问题,您可能已经意识到使用$HOME/.init
“用户”作业已被弃用,有利于$XDG_CONFIG_HOME/upstart
(或$HOME/.config/upstart/
)。看起来最新的 Foreman并没有为此提供很好的默认值,尽管它仍然是可能的。
至于您的脚本无法启动的原因,需要考虑的一些事情是
- 您是否以正确的用户身份运行?
setuid <user>
- 该用户是否有权访问
bundle
此环境?
我不确定 RVM,但我在chruby方面取得了一些成功。这是一个示例(记录):
description "A Rails application"
author "Me (me@example.com)"
start on runlevel [2345]
stop on runlevel [016]
respawn
setuid appuser
setgid appuser
console output
chdir /var/www/app/current
exec chruby-exec 2.0 -- bundle exec unicorn_rails -E production -P 5000
于 2013-11-14T02:07:35.980 回答