2013-08-23 48 views
1

我想從我的導軌應用程序使用工頭導出新貴的腳本,但我不想用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用戶安裝有關。有沒有一種方法來調試呢?謝謝。工頭導出新貴腳本作爲userjob在Ubuntu 12.04

回答

1

你可以在你的新貴腳本設置

console log

,輸出應該在數呸顯示。

根據recen upstart cookbook,會話作業輸出將出現在$XDG_CACHE_HOME/upstart/<jobname>(其中should回退到$HOME/.cache)。

或者,您可以告訴它在其他地方記錄,--logdir選項用於upstart命令。

由於您的問題是一個幾個月大,你可能已經知道,使用$HOME/.init爲「用戶」的工作贊成$XDG_CONFIG_HOME/upstart(或$HOME/.config/upstart/)已被棄用。看起來latest Foreman沒有給出很好的默認值,雖然它仍然是可能的。

至於你的腳本將無法啓動的原因,有些事情要考慮的是

  • 你運行的正確的用戶? setuid <user>
  • 該用戶是否可以在此環境中訪問bundle

我不知道RVM,但我已經取得了一些成功chruby。下面是一個例子(其中有日誌):


description "A Rails application" 
author "Me ([email protected])" 

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