Os scripts de entrada são responsáveis por definir um caminho apropriado. Defina a variável $PATH
na parte superior do script:
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin
Eu tenho um script simples que inicia uma instância de unicórnio (no Ubuntu 12.04LTS).
#!/bin/sh
case "$1" in
start)
echo "starting"
cd /path && bundle exec unicorn -c /path/config/unicorn.rb -D -E production
;;
stop)
echo "Stopping Unicorn Instances"
kill 'cat /tmp/unicorn.pid'
;;
restart)
echo "sending USR2 to all unicorns"
kill -s USR2 'cat /tmp/unicorn.pid'
;;
esac
exit 0
Ele se comporta corretamente quando chamado: /etc/init.d/unicorn_boot.sh start
Eu quero que ele inicie na inicialização, então eu corri:
update-rc.d -f unicorn_boot.sh defaults
Quando eu reinicio agora recebo o seguinte erro:
/etc/rc2.d/S20unicorn_boot.sh: 10: /etc/rc2.d/S20unicorn_boot.sh: bundle: not found
Eu verifiquei o comando bundle
e ele está instalado em /usr/local/bin
, mesmo para o comando ruby
.
Parece que, na inicialização, o PATH
ainda não inclui /usr/local/bin
. Como posso consertar isso?