PATH=$PATH:/node/v4.2.6/bin/ ./start.sh
(usando um Ubuntu EC2 no AWS)
Eu tenho um script, /home/ubuntu/start.sh
. Se eu o executar como ubuntu
, ele funcionará bem. Eu preciso que ele seja executado no lançamento, então eu coloquei em /etc/rc.local
. Isso será executado como root na reinicialização e isso falhará. Eu sou capaz de reproduzir a falha por:
# I'm ubuntu
$ whoami
ubuntu
$ sudo su
# i'm now root
$ whoami
root
$ ./start.sh
./start.sh: line 9: npm: command not found
$ su -c ./start.sh - ubuntu
./start.sh: line 9: npm: command not found
Então parece que:
npm
(instalado por ubuntu
em /home/ubuntu/.nvm/versions/node/v4.2.6/bin/npm
, então isso faz sentido) su -c ./start.sh - ubuntu
não executa exatamente o script como o ubuntu Como posso executar este script exatamente como se eu estivesse logado como ubuntu
?
PATH=$PATH:/node/v4.2.6/bin/ ./start.sh
Edite /etc/rc.local com seu editor de texto favorito.
sudo nano /etc/rc.local
Adicione a linha su ubuntu -c /etc/rc.local/ubuntu/start.sh &
(se esse for o caminho para o seu arquivo)
Isso executa o /etc/rc.local/ubuntu/start.sh como o usuário do Ubuntu na inicialização e como um processo em segundo plano.
Tags root amazon-ec2 ubuntu