Come posso impedire a login remoto ssh di interrompere dbus?


10

Sto eseguendo openSUSE 11.3 sulla mia workstation al lavoro con KDE, non ho accesso root ad esso. La shell predefinita è stata impostata su tcsh. Quando eseguo l'accesso dalla mia workstation e accedo in remoto dal mio MacBook con OS X 10.6 usando ssh, in questo modo:

ssh -X -C user@workstation.edu

tutto funziona bene; tuttavia, una volta terminato, visualizzo errori DBUS sulla sessione della mia workstation ogni volta che provo ad avviare qualsiasi cosa con una GUI, inclusa, sfortunatamente, la finestra di dialogo di logout dal pannello della barra delle attività. Mi sto stancando di uccidere startkdesolo per disconnettermi in queste situazioni.

Online ho trovato molte istruzioni per collegarmi a una sessione dbus esistente usando ssh, ma mi piacerebbe fare il contrario, lasciare la sessione dbus esistente completamente intatta dalla sessione di accesso remoto ssh.

Se lo faccio

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

funziona, quindi è solo la shell di login interattiva che sta rompendo dbus. Come devo modificare ~/.cshrc? Tenete a mente che non ho il permesso di modificare /etc/cshrc, /etc/loginecc

Posso elencare il contenuto di questi file qui, se necessario.

Aggiornare:

Ecco un grosso file tar con tutti gli script che ho trovato:

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


Sì, pubblica i contenuti dei file di inizializzazione che fanno la differenza. Inoltre, descrivere con precisione quali comandi interrompono la sessione locale (è in esecuzione dbus-launch konsoleche interrompe la sessione locale? O semplicemente un login ssh interattivo in cui si preme exitimmediatamente?).
Gilles 'SO- smetti di essere malvagio' il

@Gilles Hmm, ho provato a modificare la mia domanda con il contenuto dei file, ma ci sono troppi caratteri. Scoprirò come e dove caricarli. Nel frattempo, konsole dbus-launch non interrompe la sessione locale, mentre un login ssh interattivo dalla riga di comando seguito immediatamente da exit sarà. In effetti, anche solo facendo un rsync si rompe anche dbus (per me sembra strano che rsync esegua gli script della shell di login di default, ma lo fa).
user1079118

Prova pastebin.com per file di grandi dimensioni.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


1

In realtà le sessioni dbus sono per macchina e per display X.

Quando si esegue una sessione SSH remota, si utilizza un display X11 diverso (in genere localhost: 10)

Se si annulla tutto il dbus e lo si avvia sulla sessione SSH, funziona ... per la sessione SSH. Ma ovviamente interrompe altre sessioni dbus nella macchina.

Ciò che è necessario è verificare se esiste già una sessione per la macchina + display, se sì usarlo, se non avviare un nuovo dbus per quella combinazione e far sapere alla sessione.

Guarda https://unix.stackexchange.com/a/188877/32769 per un blocco bash che puoi inserire nel tuo file $ HOME / .bash_profile per fare quei test e fare correttamente la cosa giusta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.