SSH non è terminato dopo l'uscita quando è presente il programma X Forward


9

Dopo aver eseguito i programmi X su SSH, SSH non termina dopo l'uscita della shell (è necessario utilizzare ad es. CtrlCPer ucciderlo).

La mia ipotesi è che sebbene il programma X sia già uscito, rimane ancora qualche "connessione" (non liberata). Le eccezioni che ho trovato ora sono gtk-demoe acroread.

Qualcuno sa il motivo? È un problema con la configurazione di ssh {, d}?


1
Puoi provarlo tu stesso. Esegui ssh con -v e riporterà le connessioni X11 aperte e chiuse.
Kyle Jones,

@KyleJones THX, sembra che questo sia il problema ( C-cvengono premute due "connessioni" liberate dopo ).
yuyichao,

Ho lo stesso problema su SLES11 con qualsiasi finestra X11. Come sei arrivato a dbus?
Nils,

Puoi semplicemente controllare il processo in esecuzione come te (se non ci sono altre sessioni attive). Uso systemd e l'ho abilitato in sshd (impostazione pam), quindi tutto il processo nella sessione ssh è nello stesso cgroup, il che rende davvero facile il controllo. ~~
yuyichao

Risposte:


5

L'avvio del programma X probabilmente avvia un processo in background che non termina quando si chiude il programma (o il programma stesso non termina correttamente). Vedi qui per una spiegazione di ciò che accade.

Per risolvere questo problema, puoi provare a scoprire quali processi sono ancora in esecuzione e impedire che vengano avviati quando accedi tramite SSH o semplicemente ucciderli prima di disconnetterti. Tuttavia, puoi sicuramente uccidere la connessione SSH anche dopo esserti disconnesso.


K, il problema è che il processo dbus (gconf) è ancora in esecuzione. (grazie a systemd-cgls~~) (Ho provato al killall -KILLprogramma stesso pensando che potrebbe biforcire qualche processo in background ma questo non sembra il caso.). Quindi c'è un modo per fare bene le cose? (es. kill dbus (gconf) automaticamente) THX
yuyichao

1
Potresti mettere killall dbusqualcosa del genere nel tuo .logout, ma probabilmente confonderebbe altre cose (ad esempio quando sei loggato localmente).
Lars Kotthoff,

Hmm, sembra che debba farlo manualmente (cioè nessuna opzione diretta per quello). Almeno sto già usando kill-session=1e spero che systemd possa dirmi qual è il giusto processo per uccidere (cioè non uccidere i processi in altre sessioni.) ~~~ THX
yuyichao
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.