rootユーザーの下で5つのコマンドを実行する非常に単純なbashスクリプトがあります。コマンドを1つずつ手動で実行すると、すべてが機能します。問題ありません。しかし、コマンドを介してmy-deploy.shファイルとして実行すると
bash /root/custom-scripts/deploy/my-deploy.sh 2>> /var/log/www-deploy/tatrytec.eu.log
それは無限のプロセスのようです。スクリプトは次のとおりです:
#!/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
実行を開始し、Gitプルインターミナルの結果を確認できます。しかし、その後、エラーなしで停止し、実行されたままになります。 Ctrl+Yで停止できます。そのユーザーに何か問題があると思いますが、前に書いたように、コマンドを1つずつ実行すると機能します。理解できない。誰かが何が問題なのか教えてもらえますか?ありがとう。
承認された回答:
スクリプトの最後の行をユーザーvladoとして実行したいようです。それを行うためのクリーンな方法があります:
sudo -u vlado your_command
したがって、スクリプトの最後の数行は次のようになります。
sudo -u vlado composer install --no-scripts
sudo -u vlado npm install --production