我使用本指南为用户gitlab(rvm ruby python)创建了ruby环境: http://wiki.gentoo.org/wiki/GitLab
cat /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的捆绑包。我做错了什么?
答案 0 :(得分:3)
这里有两个问题。首先,rvm通常只由用户的shell加载,并且这里没有调用shell。其次,bundle也不会在PATH中。要解决这两个问题,假设这是一个每用户的rvm安装,试试这个......
... --exec /home/gitlab/.rvm/bin/rvm -- default do bundle exec ...
作为旁注,您不应该将unicorn_rails与Rails 3应用程序一起使用。只需使用普通的独角兽。
答案 1 :(得分:0)
另外,将GITLAB_BASE=/home/gitlab/gitlab
更改为GITLAB_BASE=/home/git/gitlab
。这个init脚本来自GitLab 4.2。在5.0以后,用户从gitlab更改为git。