【问题标题】:Foreman export upstart scripts as userjob on ubuntu 12.04工头在 ubuntu 12.04 上将新贵脚本导出为 userjob
【发布时间】:2013-08-23 03:21:21
【问题描述】:

我正在尝试使用工头从我的 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 用户安装有关。有没有办法调试这个?谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby ubuntu foreman upstart


    【解决方案1】:

    你可以设置

    console log

    在您的新贵脚本中,输出应显示在日志文件中。

    根据recen upstart cookbook,会话作业输出将出现在$XDG_CACHE_HOME/upstart/<jobname>,(其中should回退到$HOME/.cache)。

    或者,您可以使用 upstart 命令的 --logdir 选项告诉它在其他地方登录。

    由于您的问题是几个月前的问题,您可能已经意识到,不推荐使用 $HOME/.init 处理“用户”作业,而改用 $XDG_CONFIG_HOME/upstart(或 $HOME/.config/upstart/)。看起来 latest 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-30
      • 2019-10-05
      • 2016-01-15
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-07-07
      • 1970-01-01
      相关资源
      最近更新 更多