SSH tidak dihentikan setelah keluar ketika ada program X Forward

9

Setelah menjalankan program X melalui SSH, SSH tidak berhenti setelah shell keluar (harus menggunakan mis CtrlCuntuk membunuhnya).

Dugaan saya adalah meskipun program X sudah keluar, masih ada beberapa "koneksi" yang tersisa (tidak dibebaskan). Pengecualian yang saya temukan sekarang adalah gtk-demodan acroread.

Adakah yang tahu alasannya? Apakah ini masalah dengan konfigurasi ssh {, d}?

yuyichao
sumber
1
Anda dapat menguji ini sendiri. Jalankan ssh dengan -v dan akan melaporkan koneksi X11 yang dibuka dan ditutup.
Kyle Jones
@KyleJones THX, tampaknya inilah masalahnya (dua "koneksi" yang dibebaskan setelah C-cditekan).
yuyichao
Saya punya masalah yang sama pada SLES11 dengan X11-window. Bagaimana Anda melacak sampai ke dbus?
Nils
Anda cukup memeriksa proses yang berjalan seperti Anda (jika tidak ada sesi aktif lainnya) Saya menggunakan systemd dan telah mengaktifkannya di sshd (pengaturan pam), jadi semua proses dalam sesi ssh berada di cgroup yang sama, yang membuatnya sangat mudah untuk diperiksa. ~~
yuyichao

Jawaban:

5

Memulai program X mungkin memulai proses latar belakang yang tidak berakhir ketika Anda menutup program (atau program itu sendiri tidak berakhir dengan benar). Lihat di sini untuk penjelasan tentang apa yang terjadi.

Untuk memperbaikinya, Anda dapat mencoba mencari tahu proses apa yang masih berjalan dan mencegahnya dimulai saat Anda masuk melalui SSH atau cukup bunuh mereka sebelum Anda keluar. Anda tentu saja dapat membunuh koneksi SSH begitu Anda telah logout juga.

Lars Kotthoff
sumber
K, masalahnya adalah proses dbus (gconf) masih berjalan. (terima kasih kepada systemd-cgls~~) (Saya mencoba killall -KILLprogram itu sendiri berpikir mungkin perlu beberapa proses latar belakang sebelumnya tetapi sepertinya tidak demikian.). Jadi adakah cara untuk melakukan sesuatu dengan baik? (mis. bunuh dbus (gconf) secara otomatis) THX
yuyichao
1
Anda dapat meletakkan killall dbusatau sesuatu seperti itu di dalam Anda .logout, tetapi itu mungkin akan mengacaukan hal-hal lain (yaitu ketika Anda masuk secara lokal).
Lars Kotthoff
Hmm, sepertinya saya perlu melakukan ini secara manual (yaitu tidak ada opsi langsung untuk itu). Setidaknya saya sudah menggunakan kill-session=1dan mudah-mudahan systemd dapat memberi tahu saya mana proses yang tepat untuk membunuh (yaitu tidak membunuh proses di sesi lain.) ~~~ THX
yuyichao