monit falha ao suportar a sessão dbus

0

Estou tentando usar monit para monitorar e problemas automaticamente, como falhas, vazamentos de memória e hotspinning de cpu.

Para uma aplicação - uma que use o DBus (servindo e chamando funcs) simplesmente não será iniciada.

Ele usa o GDBus, que erros com dbus-launch não estão disponíveis - o que de fato é verdade, já que o sistema de alvos é bastante antigo e que esse comando ainda não existe.

Mas executando o binário do console funciona - apenas funciona - eu acho que isso é por causa do DBUS_SESSION_BUS_ADDRESS está definido corretamente - mas este não é o caso no shell que está sendo gerado para monit?

Como posso fazer o shell gerar por monit ciente de uma variável shell (por exemplo, DBUS_SESSION_BUS_ADDRESS)?

    
por drahnr 19.02.2014 / 13:52

1 resposta

0

Parecia ser um recurso de segurança - esse git commit resolve o problema não estragar o array env.

link

Uma solução suja para aqueles que ficaram com o 5.4 ou anterior (último teste):

Um hack sujo para obter um barramento de sessão de outras variáveis env de processos (testado apenas com um único usuário):

#! /bin/sh
DBUS_ADDRESS='grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed -e 's/\/proc\/[^\/]*\/environ\:/ /g'| cut -d ' ' -f 2'
if [ "x${DBUS_ADDRESS}" != "x" ]; then
        export ${DBUS_ADDRESS}
fi
    
por 23.02.2014 / 22:39