Bagaimana cara memaksa Layar lepas dari sesi SSH lain?


158

Saya memiliki Layar berjalan di dalam sesi SSH. Terminal membeku. Setelah memulai ulang Terminal, sesi Layar itu masih menganggapnya terpasang. Mungkin ini. Mungkin saya tidak tahu apa artinya itu.

Saya ingin melampirkan sesi Layar itu dari login SSH baru. Saya tidak ingin membunuh sesi Screen itu karena hal-hal penting sedang terjadi di sana. :)

Opsi yang saya pikir saya miliki (tidak ada yang saya tahu bagaimana menyelesaikannya):

  • Bagaimana cara melepaskan sesi Layar itu?
  • Bagaimana cara saya membunuh sesi SSH tempat sesi Layar itu dilampirkan?

Jawaban:


252

Saat Jose menjawab, screen -d -rsebaiknya lakukan triknya. Ini adalah kombinasi dari dua perintah, seperti yang diambil dari halaman manual.

screen -dlepaskan sesi layar yang sudah berjalan, dan screen -rpasang kembali sesi yang ada. Dengan menjalankan screen -d -r, Anda memaksa layar untuk melepaskannya dan kemudian melanjutkan sesi.

Jika Anda menggunakan modal -D -RR, saya mengutip halaman manual karena terlalu bagus untuk dilewatkan.

Lampirkan di sini dan sekarang. Apa pun artinya itu, lakukan saja.

Catatan: Itu selalu merupakan ide yang baik untuk memeriksa status sesi Anda dengan cara "daftar layar".


3
Anda juga dapat melakukan screen -xyang lebih cepat untuk mengetik, tetapi tidak sepenuhnya setara. Ini akan melampirkan sesi kedua kalinya tanpa melepaskan pertama, menghasilkan mode multi display.
jlh

10
ingat "Dokter Layar"; screen -Dr
user5359531


6

Jawaban singkat

  1. Pasang kembali tanpa mengeluarkan orang lain: screen -x
  2. Dapatkan daftar tampilan:, ^A *pilih yang akan diputus, tekand


Jawaban yang dijelaskan

Latar Belakang: Ketika saya mencari solusi dengan deskripsi masalah yang sama, saya selalu mendapatkan jawaban ini. Saya ingin memberikan solusi yang lebih masuk akal. (Sebagai contoh: layar yang terpasang lainnya memiliki ukuran yang berbeda dan saya tidak dapat mengubah ukurannya di terminal saya.)

Catatan: PREFIX biasanya ^A=ctrl+a

Catatan: yang display juga dapat disebut:

  • "pengguna front-end" (dalam atinstruksi manual di layar)
  • "client" (kosa kata tmux di mana fungsi ini berada detach-client)
  • "terminal" (seperti yang kita sebut jendela di antarmuka pengguna kami) / tergantung pada

1. Pasang kembali sesi :screen -x

-xlampirkan ke sesi layar yang tidak terlepas tanpa melepaskannya

2. Daftar tampilan sesi ini:PREFIX *

Ini adalah kunci standar mengikat untuk: PREFIX :displays. Melakukannya di dalam layar, mengidentifikasi tampilan lain yang ingin kita putuskan (mis. Ukuran lebih kecil). ( Tampilan Anda saat ini ditampilkan dalam warna yang lebih cerah / tebal bila tidak dipilih ).

term-type   size         user interface           window       Perms
---------- ------- ---------- ----------------- ----------     -----
 screen     240x60         you@/dev/pts/2      nb  0(zsh)        rwx
 screen      78x40         you@/dev/pts/0      nb  0(zsh)        rwx

Dengan menggunakan panah , pilih tampilan yang ditargetkan , tekan d Jika tidak ada yang terjadi, Anda mencoba melepaskan tampilan Anda sendiri dan layar tidak akan melepaskannya. Jika satu lagi, dalam satu atau dua detik, entri akan hilang.

Tekan ENTERuntuk keluar dari daftar.

Secara opsional: untuk membuat konten sesuai dengan layar Anda, reflow : PREFIX F(huruf besar F)

Kutipan dari halaman manual layar:

menampilkan

Memperlihatkan daftar tabular dari semua ujung depan pengguna (tampilan) yang saat ini terhubung. Ini paling berguna untuk sesi multiuser. Tombol-tombol berikut dapat digunakan dalam daftar display:

  • mouseclickPindah ke baris yang dipilih. Tersedia saat "mousetrack" diaktifkan.
  • space Perbarui daftar
  • d Lepaskan tampilan itu
  • D Lepaskan daya layar itu
  • C-g,, enteratau escapeKeluar dari daftar

-2

Coba perintahnya screen -d -r. Ini berhasil untuk saya ..!


2
Mengulangi jawaban yang diterima, yang berusia 6 tahun tidak membantu
jeb
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.