Acessa o bus da sessão dbus a partir do script upstart

5

Eu estava vagando, se é possível acessar o barramento da sessão DBUS de dentro de um script upstart.

O pano de fundo é este:
Estou executando uma tarefa de arranque no modo de usuário e substitui o arquivo de configuração Upstart.conf dbus pelo arquivo do repositório upstart bzr .

Agora, gostaria de acessar o chaveiro gnome dentro desse script de tarefas usando gkeyring , que precisa acessar o barramento de sessão iniciante do usuário. Por padrão, acabei de receber o Gnome keyring not available .

Quando tento exportar DBUS_SESSION_BUS_ADDRESS=... dentro do script upstart, o comando script/initctl simplesmente trava, sem saída em nenhum lugar.

Isso me leva a acreditar que, como o upstart também usa o DBUS, usar o barramento de sessão é problemático. Alguém tem uma ideia para resolver isso?

    
por Marcus 22.08.2012 / 22:40

2 respostas

2

isso pode funcionar para você? ...

script
    export HOME="/home/puma"
    chdir /home/puma/apps/whatever/bin
    dbus_file=$(ls $HOME/.dbus/session-bus/ -t1 | head -1)
    . "$HOME/.dbus/session-bus/$dbus_file"
    export DBUS_SESSION_BUS_ADDRESS
    exec su -s /bin/sh -c 'export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS;exec /home/puma/apps/whatever/bin/appname' puma 
end script

espero que ajude?

    
por P M 17.09.2012 / 14:59
0

Se, para todos os processos que desejam acessar o barramento de sessão, a mesma variável de ambiente DBUS_SESSION_BUS_ADDRESS estiver configurada, você não terá problemas (consulte o manual ). Mas já que as tarefas iniciais são executadas em um " ambiente restritivo " você não terá acesso a essa variável em uma tarefa do sistema (por exemplo, aqueles sob /etc/init ). No entanto, se você o tiver como um trabalho de sessão (por exemplo, em /usr/share/upstart/sessions ), terá acesso a muitas outras variáveis de ambiente. Além disso, essas tarefas não são executadas como root , mas como o usuário da sessão. Por exemplo:

start on started dbus
stop on stopping dbus

respawn
respawn limit 10 5

kill timeout 20

exec /PATH/TO/MY/JOB
    
por Yan Foto 12.11.2015 / 11:36

Tags