Accede al bus di sessione dbus dallo script Upstart

5

Stavo vagando se è possibile accedere al bus di sessione DBUS da uno script upstart.

Lo sfondo è questo:
Sto eseguendo un'attività di avvio in modalità utente e ho sostituito il file di configurazione Upstart.conf dbus con quello proveniente dal repository upstart bzr .

Ora vorrebbe accedere al keyring gnome all'interno dello script di quei task usando gkeyring , che deve accedere al bus di sessione upstart degli utenti. Per impostazione predefinita, ottengo solo Gnome keyring not available .

Quando provo a esportare DBUS_SESSION_BUS_ADDRESS=... nello script di upstart, il comando script/initctl si blocca, nessun output ovunque.

Questo mi porta a credere che poiché upstart utilizza anche DBUS, l'uso del bus di sessione è problematico. Qualcuno ha un'idea per risolvere questo?

    
posta Marcus 22.08.2012 - 22:40

2 risposte

2

potrebbe funzionare per te? ...

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

spero che aiuti?

    
risposta data P M 17.09.2012 - 14:59
0

Se per tutti i processi che vogliono accedere al bus di sessione è impostata la stessa variabile d'ambiente DBUS_SESSION_BUS_ADDRESS , non avrai problemi (vedi il manuale ). Ma poiché le attività di upstart vengono eseguite in un " ambiente restrittivo " che non avrai accesso a tale variabile in un processo di sistema (ad esempio quelli con /etc/init ). Tuttavia, se si dovesse avere come un lavoro di sessione (ad esempio in /usr/share/upstart/sessions ) si avrà accesso a molte altre variabili d'ambiente. Inoltre tali lavori non vengono eseguiti come root ma come utente della sessione. Ad esempio:

start on started dbus
stop on stopping dbus

respawn
respawn limit 10 5

kill timeout 20

exec /PATH/TO/MY/JOB
    
risposta data Yan Foto 12.11.2015 - 11:36

Leggi altre domande sui tag