2013-07-02 37 views
1

我創造了紅寶石的環境使用本指南用戶gitlab(RVM紅寶石蟒蛇): http://wiki.gentoo.org/wiki/GitLab開始Gitlab用的init.d腳本(巴布亞)

貓/etc/init.d/gitlab

GITLAB_BASE=/home/gitlab/gitlab 
GITLAB_USER=gitlab 

depend() { 
     need net redis 
} 

start() { 
     ebegin "Starting gitlab unicorn server" 
    start-stop-daemon --start \ 
      --chdir "${GITLAB_BASE}" \ 
      --user "${GITLAB_USER}" \ 
      --pidfile "${GITLAB_BASE}/tmp/pids/unicorn.pid" \ 
      --exec bundle -- exec unicorn_rails -c "${GITLAB_BASE}/config/unicorn.rb" -E      production -D 
    eend $? 
    ebegin "Starting gitlab sidekiq" 
    start-stop-daemon --start \ 
      --chdir "${GITLAB_BASE}" \ 
      --user "${GITLAB_USER}" \ 
      --pidfile "${GITLAB_BASE}/tmp/pids/sidekiq.pid" \ 
      --exec bundle -- exec rake sidekiq:start RAILS_ENV=production 
    eend $? 
} 

stop() { 
    ebegin "Stopping gitlab sidekiq" 
    start-stop-daemon --stop \ 
      --chdir "${GITLAB_BASE}" \ 
      --user "${GITLAB_USER}" \ 
      --pidfile "${GITLAB_BASE}/tmp/pids/sidekiq.pid" 
    eend $? 
    ebegin "Stopping gitlab unicorn server" 
    start-stop-daemon --stop \ 
      --chdir "${GITLAB_BASE}" \ 
      --user "${GITLAB_USER}" \ 
      --pidfile "${GITLAB_BASE}/tmp/pids/unicorn.pid" 
    eend $? 
}%                   

當我開始它時,我看到:

* Starting gitlab unicorn server ... 
* start-stop-daemon: bundle does not exist                                       
* Starting gitlab sidekiq ... 
* start-stop-daemon: bundle does not exist                                       
* ERROR: gitlab failed to start 

我已經得到用戶gitlab捆綁。我做錯了什麼?

回答

3

這裏有兩個問題。首先,rvm通常只能由用戶的shell加載,並且這裏沒有調用shell。其次,捆綁也不會在PATH中。要解決這兩個問題,假設這是一個每個用戶安裝RVM,試試這個...

... --exec /home/gitlab/.rvm/bin/rvm -- default do bundle exec ... 

作爲一個側面說明,你不應該使用了Rails 3個應用unicorn_rails。只需使用純獨角獸。

0

另外,將GITLAB_BASE=/home/gitlab/gitlab更改爲GITLAB_BASE=/home/git/gitlab。這個init腳本來自GitLab 4.2。在5.0以後,用戶從gitlab變成了git。