Eu acesso uma máquina através de várias sessões de login. O tempo de vida das sessões pode ou não se sobrepor. No meu caso, essas sessões de logon são sempre sempre sobre SSH, mas eu preferiria lidar com sessões locais também.
Às vezes, preciso do D-Bus nessas sessões e quero compartilhar a mesma sessão do D-Bus nessas sessões de logon para usar o GVFS .
Qual é a maneira recomendada de fazer isso? Não quero interromper nenhum uso do D-Bus que possa não estar ciente. Eu considerei usar
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
mas (no Ubuntu 12.04) isso não parece certo:
- isso requer uma sessão X, mas minhas sessões SSH podem ou não estar encaminhando uma exibição X, e mesmo as que não são iguais
$DISPLAY
; - se nenhuma exibição do X estiver disponível,
dbus-launch
reclama que “Erro de inicialização automática: a inicialização do X11 falhou.” e não inicia um daemon; - a
dbus-launch
página de manual afirma que “a--autolaunch
opção é considerada um detalhe interno da implementação (…). Não há motivo real para usá-lo fora da implementação do libdbus de qualquer maneira. ”
Uma dbus-launch
outra ferramenta no pacote D-Bus suporta a detecção automática de uma corrida dbus-daemon
e a conexão com ela? As informações necessárias estão disponíveis ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
se o D-Bus for iniciado com uma conexão X, mas não parece ser armazenado em nenhum lugar se nenhuma conexão X estiver disponível.
Devo remendar meu próprio arquivo de sessão do D-Bus? Se sim, devo usar um arquivo no ~/.dbus/session-bus
diretório? O caminho é /var/lib/dbus/machine-id
confiável e portátil?