
(Usando un Ubuntu EC2 en AWS)
Tengo un guión /home/ubuntu/start.sh
. Si lo ejecuto como ubuntu
, funciona bien. Necesito que se ejecute en el lanzamiento, así que lo puse en /etc/rc.local
. Luego se ejecutará como root al reiniciar y falla. Puedo reproducir el error mediante:
# 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
Entonces se ve así:
- root no lo sabe
npm
(instalado porubuntu
debajo/home/ubuntu/.nvm/versions/node/v4.2.6/bin/npm
para que tenga sentido) su -c ./start.sh - ubuntu
no ejecuta exactamente el script como ubuntu
¿Cómo puedo ejecutar este script exactamente como si hubiera iniciado sesión como ubuntu
?
Respuesta1
PATH=$PATH:/node/v4.2.6/bin/ ./start.sh
Respuesta2
Edite /etc/rc.local con su editor de texto favorito.
sudo nano /etc/rc.local
Y agregue la línea su ubuntu -c /etc/rc.local/ubuntu/start.sh &
(si esa es realmente la ruta a su archivo)
Esto ejecuta /etc/rc.local/ubuntu/start.sh como el usuario ubuntu al inicio y como proceso en segundo plano.