启动时启动捆绑软件可执行文件(Mac OSX /)

时间:2013-06-11 07:19:10

标签: ruby-on-rails macos bundler sidekiq

我正在尝试将Mac OSX系统设置为服务器,并希望我的rails应用程序在启动时启动,包括所有相关的应用程序。我设法让乘客/ nginx和redis开始,但是在启动sidekiq时遇到了麻烦。

更具体地说,我想在启动bundle exec sidekiq -q carrierwave -e production -P /path/to/pid_file运行此命令。

我尝试创建以下plist文件并将其添加到/ System / Library / LaunchDaemons /。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Debug</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
  <key>Label</key>
  <string>my.sidekiq</string>
  <key>ProgramArguments</key>
  <array>
    <string>/Users/username/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle</string>
    <string>exec</string>
    <string>sidekiq</string>
    <string>-q</string>
    <string>carrierwave</string>
    <string>-e</string>
    <string>production</string>
    <string>-P</string>
    <string>/path/to/sidekiq.pid</string>
  </array>
  <key>EnvironmentVariables</key>
  <dict>
    <key>RAILS_ENV</key>
    <string>production</string>
  </dict>
  <key>WorkingDirectory</key>
  <string>/path/to/rails/project</string>
  <key>StandardOutPath</key>
  <string>/path/to/log/sidekiq.log</string>
  <key>StandardErrorPath</key>
  <string>/path/to/log/sidekiq_err.log</string>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

我运行sudo launchctl load /System/Library/LaunchDaemons/my.sidekqi.plist来加载并启动守护程序,但系统控制台显示此启动的退出代码127(并反复尝试重新启动)。

如果我从命令行运行程序参数,我会收到“未找到Gemfile”错误(假设我不在rails项目目录中)。如果我从项目目录运行,sidekiq将启动。据我所知,WorkingDirectoy应该在指定的路径(这是我的rails项目路径)中执行bundle命令。

我认为问题源于在rails项目目录中未执行的bundle。所以要么我需要启动才能在工作目录中启动进程(由于某种原因这不起作用),或者在项目目录之外执行bundle命令,但不知何故指示它在gem文件所在的位置。

如果这很重要,我也在使用rvm。 ruby 1.9.3,rails 3.2.13,mac osx lion。

由于

0 个答案:

没有答案