script de inicialização não está sendo executado no Amazon linux

2

Estou tentando encaminhar o syslog para logentries.com, o que requer uma linha adicionada ao /etc/rsyslog.conf, até aí tudo bem. no entanto, eu estou rodando no amazstal elastic beanstalk e tenho 3 ambientes (dev, staging, prod) que eu gostaria de rotear para diferentes portas baseadas no ambiente (logentries diferencia o ambiente baseado na porta em que ele é encaminhado)

eu criei um site apache rodando na porta 8001 que apenas mostra a porta que eu quero usar para este servidor específico (já que as propriedades do recipiente beanstalk elástico são adicionadas ao php.ini, eu precisava de uma maneira de gerar variáveis php.ini) . então eu escrevi um script:

#!/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

que funciona muito bem quando executado a partir do terminal, mas parece que não consigo executar na inicialização.

Eu coloquei dentro de /etc/rc.d/rc.local , eu coloquei em /etc/rc.d/rc3.d/S99logentries (com 777 perms) sem sorte. alguma idéia de por que isso pode ser?

    
por hackerhasid 04.07.2012 / 15:07

1 resposta

1

O truque "antigo" para executar um script como cron job ou no momento da inicialização é redirecionar o stderr e stdout para um arquivo para ver o que acontece:

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

Tenha também em mente que: sempre use o caminho absoluto de um comando. Altere a linha final para /sbin/service rsyslog restart e tente novamente.

PS: NUNCA chmod 777 para um script de shell!

    
por 05.07.2012 / 08:48