Запуск команды при загрузке с правильным пользователем env vars

Я пытаюсь создать сценарий запуска, который будет запускать эту команду при загрузке для моего сервера Ubuntu 12.04:

Комплектация exec thin -R config.ru start -p 3030

Когда я запускаю его как обычный пользователь, он работает просто отлично, запускается тонкий веб-сервер, и я могу получить доступ к своей странице, которая мне нужна. Ниже приведен скрипт запуска, который я пытаюсь использовать /etc/init/thin.conf:

description "thin"
version "1.0"
author "Me"

env LANG=en_US.UTF-8
env APP_HOME=/home/username/onlinetraining_dashboard
respawn
start on runlevel [23]
script
cd $APP_HOME
sudo -u username /home/username/.rvm/gems/ruby-1.9.3-p448@global/bin/bundle exec thin -R config.ru start -p 3030 > $APP_HOME/log/thin.log 2>&1
end script

Затем я наберу "sudo start thin", чтобы запустить скрипт, и он должен запуститься при загрузке.

Когда я запускаю службу, я получаю эту ошибку в файле журнала:

/usr/bin/env: ruby_executable_hooks: No such file or directory

Я использую ruby ​​с RVM 1.9.3.

Вот мой.bash_profile, который, как я предполагаю, позволяет мне запускать пакет команд exec thin -R config.ru start -p 3030 без ошибок:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

Я также попробовал это безуспешно в сценарии.

sudo -u username bundle exec thin -R config.ru start -p 3030 > $APP_HOME/log/thin.log 2>&1

Спасибо за помощь.

1 ответ

Вы должны использовать обертки, вы можете узнать больше о них здесь: http://rvm.io/integration/init-d

Другие вопросы по тегам