Cara menggunakan perintah layar untuk menghindari penghentian sesi ssh yang tidak terduga

Cara menggunakan perintah layar untuk menghindari penghentian sesi ssh yang tidak terduga

Masalah pemutusan SSH

Sesi terminal Anda mungkin ditutup karena berbagai masalah jaringan saat Anda berada
Menjalankan proses pada mesin jarak jauh misalnya.:

# Tulis Gagal: Pipa rusak 

Sebagai hasil dari pemutusan jaringan ini, sesi shell SSH Anda juga secara tidak sengaja membunuh setiap proses anak yang dijalankan di bawah Anda ssh sesi di mesin jarak jauh.

Menjalankan solusi sesi ssh tanpa gangguan

Menggunakan layar Perintah untuk menyimpan sesi. Saat sesi SSH Anda terputus, perintah layar akan membuat proses jarak jauh Anda tetap berjalan. Pertimbangkan contoh SSH berikut di mana kami mencoba SSH dari tuan rumah lokal 10.1.1.2 ke jarak jauh 10.1.1.15 tuan rumah.

Contoh Perintah Layar SSH

Mari kita mulai dengan mendaftarkan sesi layar kami yang saat ini dibuka:

Lokal> $ Layar -List tidak ada soket ditemukan di/var/run/screen/s -lubos. 

Dari atas layar output perintah kita dapat melihat bahwa saat ini kita tidak memiliki sesi dibuka. Mari Buat yang Baru layar sesi saat kami pada saat yang sama ssh ke host jarak jauh. Buka terminal baru dan masukkan:

Lokal> $ layar ssh [email protected] 

Sebutkan sesi layar kami lagi:

lokal> $ screen -list ada layar di: 5646.PTS-0.TheBeast (13/05/15 16:49:30) (terlampir) 1 soket in/var/run/screen/s-lubos. 

Di atas layar Output menunjukkan bahwa kami memiliki satu sesi terlampir dengan ID PID 5646. Saat ini kita dapat memulai proses pada host jarak jauh sebagai contoh kita dapat melakukan ping sederhana:

remote> # ping 8.8.4.4 ping 8.8.4.4 (8.8.4.4) 56 (84) byte data. 64 byte dari 8.8.4.4: icmp_req = 1 ttl = 57 waktu = 18.2 ms 64 byte dari 8.8.4.4: icmp_req = 2 ttl = 57 waktu = 17.2 ms 64 byte dari 8.8.4.4: icmp_req = 3 ttl = 57 waktu = 18.0 MS 

Pada tahap ini kita dapat mensimulasikan pemutusan jaringan ke host jarak jauh dengan secara manual mencabut kabel jaringan:

lokal> $ ping 10.1.1.15 ping 10.1.1.15 (10.1.1.15) 56 (84) byte data. Dari 10.1.1.2 icmp_seq = 9 host tujuan yang tidak dapat dijangkau dari 10.1.1.2 icmp_seq = 10 host tujuan yang tidak dapat dijangkau dari 10.1.1.2 icmp_seq = 11 host tujuan yang tidak terjangkau ^C --- 10.1.1.15 Ping Statistics --- 13 Paket ditransmisikan, 0 Diterima, +3 Kesalahan, Kehilangan Paket 100%, Waktu 12088ms Pipa 3 

Pada titik ini kami telah kehilangan koneksi dan kami ssh sesi akan membeku. Kami sekarang dapat menutup jendela terminal dengan terputus ssh Sesi dan daftar layar kami:

lokal> $ screen -list ada layar di: 5646.PTS-0.TheBeast (13/05/15 16:49:30) (terpisah) 1 soket in/var/run/screen/s-lubos. 

Karena kita dapat melihat sesi layar kita sekarang terpisah. Selanjutnya, kami menciptakan kembali koneksi jaringan ke host jarak jauh:

lokal> $ ping 10.1.1.15 ping 10.1.1.15 (10.1.1.15) 56 (84) byte data. 64 byte dari 10.1.1.15: icmp_seq = 1 ttl = 64 waktu = 0.951 MS 64 byte dari 10.1.1.15: icmp_seq = 2 ttl = 64 waktu = 0.563 MS ^C --- 10.1.1.15 Ping Statistics --- 2 paket yang ditransmisikan, 2 diterima, kehilangan paket 0%, waktu 1001ms rtt min/rata-rata/maks/mdev = 0.563/0.757/0.951/0.194 ms 

Pada titik ini kita dapat sekali lagi memasang kembali sesi SSH jarak jauh yang sebelumnya dibuka sebelumnya:

Lokal> $ layar -d -r 64 byte dari 8.8.4.4: ICMP_REQ = 203 TTL = 57 Waktu = 18.2 ms 64 byte dari 8.8.4.4: ICMP_REQ = 204 TTL = 57 Waktu = 18.1 ms 64 byte dari 8.8.4.4: ICMP_REQ = 205 TTL = 57 Waktu = 18.1 ms 64 byte dari 8.8.4.4: icmp_req = 206 ttl = 57 waktu = 18.4 ms 64 byte dari 8.8.4.4: ICMP_REQ = 207 TTL = 57 Waktu = 18.1 ms ^C --- 8.8.4.4 Ping Statistics --- 207 Paket Ditransmisikan, 207 Diterima, Kehilangan Paket 0%, Waktu 206310ms RTT Min/AVG/MAX/MDEV = 17.231/18.369/23.795/0.571 ms 

Output di atas dengan kehilangan paket 0% adalah bukti bahwa bahkan kami telah terputus dari sesi jarak jauh oleh kegagalan jaringan layar Perintah menjaga proses jarak jauh hidup tanpa gangguan.

Tutorial Linux Terkait:

  • Cara menyebarkan sinyal untuk proses anak dari pesta ..
  • Cara membunuh proses dengan nama
  • Manajemen daftar proses dan penghentian proses otomatis
  • Cara membunuh proses berdasarkan nomor port di linux
  • Pengantar Pipa Bernama di Bash Shell
  • Cara menggunakan perintah killall di linux
  • Panduan Pemecahan Masalah Umum GNU/Linux untuk Pemula
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Cara meluncurkan proses eksternal dengan Python dan…
  • Perintah Linux Dasar