Iniciando o comando na inicialização com o usuário correto env vars

1

Estou tentando criar um script de inicialização que executará este comando na inicialização do meu servidor Ubuntu 12.04:

bundle exec thin -R config.ru iniciar -p 3030

Quando eu o executo como um usuário comum, ele funciona muito bem, o servidor web fino é iniciado e posso acessar a página que preciso. Abaixo está o script de inicialização que estou tentando usar /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

Vou então digitar "sudo start thin" para executar o script e ele deve iniciar na inicialização.

Quando eu inicio o serviço, recebo este erro no arquivo de log:

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

Estou usando o ruby com o RVM 1.9.3.

Aqui está o meu .bash_profile que estou supondo que me permita executar o pacote de comandos exec thin -R config.ru iniciar -p 3030 sem erros:

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

Eu também tentei isso sem sucesso no script.

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

Obrigado pela ajuda.

    
por joshmmo 16.10.2013 / 00:00

1 resposta

2

você deve usar wrappers, pode ler mais sobre eles aqui: link

    
por 13.01.2014 / 03:40