Назад | Перейти на главную страницу

сценарий запуска не выполняется на amazon linux

Я пытаюсь перенаправить системный журнал на logentries.com, для чего требуется добавить строку в /etc/rsyslog.conf, пока все хорошо. однако я использую эластичный beanstalk Amazon и имею 3 среды (dev, staging, prod), которые я хотел бы направить на разные порты в зависимости от среды (logentries различает среду в зависимости от порта, на который она перенаправляется)

Я создал сайт apache, работающий на порту 8001, который просто выводит порт, который я хочу использовать для этого конкретного сервера (поскольку свойства контейнера эластичных бобовых стеблей добавляются к php.ini, мне нужен был способ вывода переменных php.ini). затем я написал сценарий:

#!/bin/bash
LOGENTRIES_PORT=`curl 127.0.0.1:8001`
if [ "${LOGENTRIES_PORT}" == '' ]; then
  exit -1
fi

echo "*.* @@46.51.181.128:${LOGENTRIES_PORT}" >> /etc/rsyslog.conf
service rsyslog restart

который отлично работает при запуске с терминала, но я не могу запустить при запуске.

я засунул это внутрь /etc/rc.d/rc.local, я положил это в /etc/rc.d/rc3.d/S99logentries (с участием 777 завивка) безуспешно. есть идеи, почему это может быть?

«Старый» трюк для запуска скрипта как задания cron или во время загрузки - это перенаправить stderr и stdout в файл, чтобы посмотреть, что произойдет:

/path/to/your/script > /var/log/script.log 2>&1

Также имейте в виду, что: всегда используйте абсолютный путь команды. Измените последнюю строку на /sbin/service rsyslog restart и попробуй еще раз.

PS: НИКОГДА chmod 777 для сценария оболочки!