Я запускаю приложение на beanstalk AWS и устраняю проблему, которую у меня есть. Часть развертывания создаст сценарий оболочки и выполнит его. Когда команда выполняется, первая строка работает нормально. Это простая команда «cat file.txt >> /etc/httpd/file.conf».AWS Beanstalk - запуск сценария оболочки, где команда не выполняется успешно
Во второй строке мне нужно найти строку текста и поместить ее в файл, и она никогда не пройдет успешно. Я могу запустить скрипт вручную как root без проблем. Вот файл:
#! /bin/bash
if ! grep -q 'Clickjacking' /etc/httpd/conf/httpd.conf ;
then
cat /home/ec2-user/httpd-update.conf >> /etc/httpd/conf/httpd.conf
fi
# check if wsgi mod exists and insert into wsgi.conf if necessary
if ! grep -q 'TRACE|TRACK' /etc/httpd/conf.d/wsgi.conf;
then
sed -i -e '/WSGIProcessGroup wsgi/r /home/ec2-user/wsgi-update.conf' /etc/httpd/conf.d/wsgi.conf
fi
sudo service httpd reload
Кто-нибудь знает, почему команда sed
не работает в сценарии оболочки при Beanstalk развертывает?
Вы можете уточнить вопрос? выполняется команда 'sed', но не работает или весь скрипт не выполняется? Кроме того, этот файл является файлом '.config'? – Tal
Beanstalk выполняет сценарий оболочки и запускает первую часть. Команда sed также запускается, но не выполняется, потому что файл не был изменен. Затем я могу взять скрипт, который был написан на сервере, и запустить его вручную, и команда sed будет работать, будет ли я работать как пользователь ec2 с sudo или root. – nocode
Может ли быть, что вы запускаете этот скрипт до того, как файл вставлен на место или заменен тем, который был там установлен во время развертывания? Попробуйте запустить его как команду контейнера. – Gustaf