Tengo un script bash realmente simple con 5 comandos que se ejecutan bajo el usuario raíz. Si ejecuto los comandos manualmente uno por uno, todo funciona, no hay problema. Pero cuando lo ejecuto como archivo my-deploy.sh a través del comando
bash /root/custom-scripts/deploy/my-deploy.sh 2>> /var/log/www-deploy/tatrytec.eu.log
parece un proceso interminable. Aquí está el guión:
#!/bin/bash
# Run this script as bash command like: bash create-apache-site.sh
cd /var/www/html/tatrytec.eu
git pull
# Change user bacause of composer install warrning
su vlado
composer install --no-scripts
npm install --production
Comienza a ejecutarse y puedo ver el resultado de git pull in terminal. Pero luego muere sin ningún error y todavía se está ejecutando. Puedo detenerlo a través de ctrl+Y. Creo que algo está mal con ese usuario, pero como escribí antes, si ejecuto los comandos uno por uno, funciona. No entiendo. Alguien me puede decir cual puede ser el problema? Gracias.
Respuesta aceptada:
Parece que desea ejecutar las últimas líneas en su secuencia de comandos como el usuario vlado. Hay una forma limpia de hacerlo:
sudo -u vlado your_command
Entonces, las últimas líneas de su secuencia de comandos se verán así:
sudo -u vlado composer install --no-scripts
sudo -u vlado npm install --production