Чтобы перезапустить рабочие очереди с переменными среды fre sh, у меня есть следующий файл .ebextension
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/90_make_storage_writable.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
chmod -R 777 /var/app/current/storage
"/opt/elasticbeanstalk/hooks/appdeploy/post/95_run_migration.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
#
# Restart supervisord/ctl (reloads environment variables in artisan jobs)
#
# Mkdir required for initial installation.
mkdir -p /var/app/support/logs/supervisor
/usr/bin/pkill supervisord
/usr/bin/pkill supervisorctl
sleep 5s
/usr/local/bin/supervisord
/usr/local/bin/supervisorctl reread
/usr/local/bin/supervisorctl update
/usr/local/bin/supervisorctl start laravel-queue:*
#
cd /var/app/current
. /opt/elasticbeanstalk/support/envvars
if [[ ! -z "${APP_ENV}" ]]; then
/usr/bin/php artisan migrate --force
/usr/bin/php artisan queue:restart
fi
"/opt/elasticbeanstalk/hooks/configdeploy/post/10_run_migration.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
#
# Restart supervisord/ctl (reloads environment variables in artisan jobs)
#
# Mkdir required for initial installation.
mkdir -p /var/app/support/logs/supervisor
/usr/bin/pkill supervisord
/usr/bin/pkill supervisorctl
sleep 5s
/usr/local/bin/supervisord
/usr/local/bin/supervisorctl reread
/usr/local/bin/supervisorctl update
/usr/local/bin/supervisorctl start laravel-queue:*
#
cd /var/app/current
. /opt/elasticbeanstalk/support/envvars
if [[ ! -z "${APP_ENV}" ]]; then
/usr/bin/php artisan migrate --force
/usr/bin/php artisan queue:restart
fi
Однако он не работает. Рабочие перезагружаются, но ничего не делают.
Запуск sudo sh 95_run_migration.sh
тоже не работает (все команды работают, но рабочие ничего не делают).
Однако, если я запустите
sudo su -
sh 95_run_migration.sh
, тогда это сработает. Я знаю, что есть разница в запуске sudo sh против sudo su - et c, но я не совсем понимаю.
Что мне нужно знать, так это как запустить скрипт после развертывания в правильной манере. Разве это не работает как надо root?