Como impedir que o login remoto ssh interrompa o dbus?


10

Estou executando o openSUSE 11.3 na minha estação de trabalho no trabalho no KDE, não tenho acesso root a ele. O shell padrão foi definido como tcsh. Quando estou logado na minha estação de trabalho e logon remotamente no meu MacBook executando o OS X 10.6 ssh, use o seguinte:

ssh -X -C user@workstation.edu

tudo funciona bem; no entanto, assim que termino, recebo erros DBUS na sessão da estação de trabalho sempre que tento iniciar qualquer coisa com uma GUI, incluindo, infelizmente, a caixa de diálogo de logout no painel da barra de tarefas. Estou cansado de matar startkdeapenas para sair nessas situações.

On-line Encontrei muitas instruções para conectar-se a uma sessão dbus existente usando ssh, mas eu gostaria de fazer o oposto, deixe a sessão dbus existente completamente intocada pela sessão de login remoto ssh.

Se eu fizer

ssh -X -C user@workstation.edu dbus-launch konsole

isso funciona, então é apenas o shell de login interativo que está quebrando o dbus. Como devo modificar ~/.cshrc? Tenha em mente que eu não tenho permissão para modificar /etc/cshrc, /etc/loginetc.

Eu posso listar o conteúdo desses arquivos aqui, se necessário.

Atualizar:

Aqui está um grande arquivo tar com todos os scripts que pude encontrar:

http://dl.dropbox.com/u/17203983/cshrc.tgz


Sim, publique o conteúdo dos arquivos de inicialização que fazem a diferença. Além disso, descreva com precisão quais comandos quebram a sessão local (é a execução dbus-launch konsoleque interrompe a sessão local? Ou apenas um login ssh interativo no qual você pressiona exitimediatamente?).
Gilles 'SO- stop be evil'

@ Gilles Hmm, tentei editar minha pergunta com o conteúdo dos arquivos, mas há muitos caracteres. Vou descobrir como e onde posso enviá-los. Enquanto isso, o dbus-launch konsole não interrompe a sessão local, enquanto um login ssh interativo na linha de comando seguido imediatamente pela saída o fará. De fato, apenas fazer um rsync também quebra o dbus (para mim parece estranho que o rsync execute os scripts do shell de login por padrão, mas sim).
user1079118

Tente pastebin.com para arquivos grandes.
Gilles 'SO- stop be evil'

Respostas:


1

Na verdade, as sessões do dbus são por máquina e por monitor X.

Ao fazer uma sessão SSH remota, você usa uma tela X11 diferente (geralmente localhost: 10)

Se você matar todo o dbus e iniciá-lo na sessão SSH, funcionará ... para a sessão SSH. Mas, obviamente, ele interrompe todas as outras sessões de dbus na máquina.

O que é necessário é verificar se já existe uma sessão para a máquina +, se sim, usá-la, se não iniciar um novo dbus para essa combinação e informar a sessão.

Veja https://unix.stackexchange.com/a/188877/32769 para obter um bloco bash que você pode colocar no seu arquivo $ HOME / .bash_profile para fazer esses testes e fazer a coisa certa corretamente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.