Pulihkan sesi SSH

13

Saya telah terhubung ke server saya melalui SSH dan menciptakan suatu proses, tetapi tiba-tiba koneksi internet saya terputus. Saya tahu bahwa prosesnya sedang berlangsung, tetapi bagaimana memulihkan sesi sebelumnya untuk melihat perkembangannya?

Arash Mousavi
sumber

Jawaban:

16

Seperti yang disarankan di atas, di masa depan Anda dapat menggunakan layar untuk mencegah hal itu. Penjelasan singkat tentang cara menggunakan layar:

  1. screen -S compiling_stuff
  2. Lakukan hal-hal di sini. misalnya ./configure
  3. Jika koneksi ditutup karena beberapa alasan Anda dapat menyambung kembali ke server dan masalah screen -r comp
  4. Anda dapat melepaskan sesi layar sendiri juga dengan menekan CTRL+A+D

Semoga berhasil

Valentin Bajrami
sumber
17

screen adalah yang terbaik untuk memulai perintah di terminal yang akan disimpan ketika Anda memutuskan sambungan darinya (baik sengaja, ctrl + iklan, atau karena koneksi mati, dll).

NAMUN Anda dapat melampirkan kembali proses yang sedang berjalan (mis: cangkang sesi lari Anda, jika masih berjalan) ke terminal Anda saat ini (yaitu, pasang kembali stdin, stdout, keyboard, tetapi juga jadikan terminal baru terminal pengendali untuk itu proses) menggunakan: reptyr

Untuk yang terbaik dari kedua dunia: instal screen, mulai, lalu pasang kembali proses itu di sesi layar itu dengan reptyr^^

Olivier Dulac
sumber
Oliver, bagaimana mungkin melampirkan kembali ke proses yang berjalan? Bisakah Anda memberi saya petunjuk?
pemanah
@archer: hint: ikuti tautan ^^ (akhir paragraf ke-2 saya)
Olivier Dulac
@archer: tetapi layar lebih sederhana: sekali runnign di layar, ctrl + iklan: lepas dari layar (dan pulang). lalu pasang kembali ke layar: "screen -r" (atau cara yang lebih rumit, jika ada yang macet). Untuk membedakan antara banyak sesi layar, beri mereka nama.
Olivier Dulac
7

Kamu tidak bisa Di masa mendatang, Anda dapat mencegah hal seperti ini dengan menggunakan screenatau tmux, yang dibuat untuk memungkinkan untuk menyambung kembali ke sesi setelah pemutusan.

Sven
sumber
5

Saya pikir saya akan menyebutkan http://mosh.mit.edu/

Aplikasi terminal jarak jauh yang memungkinkan roaming, mendukung konektivitas intermiten, dan menyediakan gema lokal yang cerdas dan pengeditan garis penekanan tombol pengguna.

Mosh adalah pengganti SSH. Ini lebih kuat dan responsif, terutama melalui Wi-Fi, seluler, dan sambungan jarak jauh.

Jon Conley
sumber
+1 untuk kepala, saya belum pernah mendengar alat itu sebelumnya!
Olivier Dulac
2

Gunakan screenvia ssh untuk menghubungkan kembali nanti ke sesi Anda.

Sejauh yang saya tahu tidak ada cara untuk menyambung kembali ke sesi ssh tertutup.

Uwe Plonus
sumber
1

Saya dapat merekomendasikan Byobu :

Byobu adalah perangkat tambahan untuk terminal multiplexer Layar GNU atau tmux yang dapat digunakan untuk memberikan pemberitahuan atau status di layar serta manajemen multi-jendela tab. Hal ini bertujuan untuk memberikan pengalaman pengguna yang lebih baik untuk sesi terminal saat menghubungkan ke server jarak jauh.

Frank Zafka
sumber
1

Saya akan merekomendasikan untuk menggunakan tmux :

Anda dapat mengembalikan sesi tmux melalui tmux attach.

tmux adalah aplikasi perangkat lunak yang dapat digunakan untuk multiplex beberapa konsol virtual, memungkinkan pengguna untuk mengakses beberapa sesi terminal terpisah di dalam jendela terminal tunggal atau sesi terminal jarak jauh. Berguna untuk menangani banyak program dari antarmuka baris perintah, dan untuk memisahkan program dari shell Unix yang memulai program. [1] Ini menyediakan banyak fungsi yang sama dengan Layar GNU, tetapi didistribusikan di bawah lisensi BSD.

shyoo
sumber