Sedang melakukan pekerjaan pada mesin CentOS 5.6 jarak jauh dan jaringan saya terus menurun. Apakah ada cara agar saya dapat memulihkan sesi yang digantung setelah terhubung kembali?
EDIT: saya sedang melakukan beberapa pembaruan dan instalasi dengan yum dan saya khawatir ini mungkin menjadi masalah jika proses terus menggantung di tengah apa pun yang mereka lakukan.
linux
session
shell
networking
Jeff Schaller
sumber
sumber
Jawaban:
Tidak ada cara, tetapi untuk mencegah ini saya suka menggunakan
tmux
. Saya memulai tmux, memulai operasi dan melanjutkan perjalanan. Jika saya kembali dan menemukan koneksi telah terputus, yang harus saya lakukan adalah menyambung kembali dan mengetiktmux attach
.Ini sebuah contoh.
sumber
screen
.Rekomendasi untuk tmux dan layar adalah saran yang bagus. Mereka menyiratkan jawaban untuk pertanyaan Anda, tetapi tidak benar-benar menyatakannya. Jawaban atas pertanyaan itu adalah: tidak mungkin. Jika Anda masuk melalui ssh, shell berakhir ketika koneksi turun. Cara mengatasinya adalah untuk masuk dan segera memulai terminal virtual dari beberapa jenis (seperti
tmux
). Ketika koneksi turun, shell tempat Anda berada berakhir, tetapi Anda dapat membuka shell baru dan menyambung kembali ke terminal virtual (yang menjalankan shell di mana Anda benar-benar melakukan pekerjaan Anda.)sumber
Seperti kata William, jawaban singkatnya adalah tidak, tidak ada jalan. Untuk mencegah ini, Anda bisa menggunakan perintah layar sebelum Anda kehilangan koneksi
sumber
Tidak, Anda tidak dapat memulihkan shell setelah pemutusan. Sebaliknya yang dapat Anda lakukan adalah memastikan perintah yang Anda jalankan terus berjalan setelah pemutusan.
Untuk mencapai ini, gunakan perintah "nohup" dan "disown", yang biasanya dibangun di sebagian besar shell, yaitu Anda tidak perlu menginstal apa pun. Ini hanya berfungsi untuk perintah non-interaktif.
Jadi, langkah-langkahnya adalah sebagai berikut:
Ketika Anda kembali ke server, cukup "tail nohup.out" untuk melihat bagaimana perintah itu dilakukan.
sumber
Seseorang menambahkan reptyr dalam komentar daripada jawaban jadi saya tidak bisa membatalkannya, tapi sepertinya itu jawaban yang bagus untuk pertanyaan yang diedit dan bekerja dengan baik pada CentOS.
lihat: https://github.com/nelhage/reptyr https://www.ostechnix.com/reptyr-move-running-process-new-terminal/
Jadi hal yang sama, saya kehilangan koneksi jarak jauh ke sesi pembaruan yum. Jadi saya mencari dan menemukan pertanyaan ini ... kemudian menghubungkan kembali dan menggunakan layar saat ini:
dan di sinilah aku pada prompt yang pulih yang diberikan yum beberapa jam sebelumnya.
Secara teknis semua jawabannya benar, ini BUKAN pemulihan dari sesi yang digantung, ini merupakan perbaikan dari proses yatim untuk sesi saat ini. Dan sangat berguna juga ...
sumber
Seperti yang disarankan banyak orang
screen
dantmux
, keduanya mendukung fungsi dasar, tetapi memiliki fitur spesifik yang berbeda, sehingga orang tidak dapat mengatakan bahwa satu lebih unggul dari yang lain dalam semua kasus. Sebagai contoh, hanya tmux yang mendukung Window-splitting , sementara hanya layar GNU yang dapat beralih dengan pembungkus garis panjang (Ctrl + ar). Lihat perbandingan lebih detail di sini .Ada juga alat khusus untuk memperbaiki masalah ssh ini:
Autossh adalah program untuk memulai salinan ssh dan memonitornya, memulai kembali seperlunya jika mati atau berhenti melewati lalu lintas. Idenya adalah dari rstunnel.
Mosh adalah aplikasi terminal jarak jauh yang memungkinkan roaming, mendukung konektivitas terputus-putus, 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.
sumber
Ini bisa dilakukan dengan menggunakan
tmux
shell. Jika Anda terputus, cara tercepat untuk memasang kembali sesi adalah:sumber
tmux
sesi berjalan.attach
sebagaia
".