Mematikan PC tanpa membunuh sesi SSH

14

Saya memiliki beberapa proses yang panjang dan berat yang berjalan di mesin Linux jarak jauh. Saya menggunakan laptop saya untuk SSH ke mesin ini dan menjalankan proses dari sofa saya.

NAMUN, ketika saya ingin mematikan laptop saya, saya dalam masalah karena proses jarak jauh terbunuh.

Saya melakukan riset dan menemukan bahwa "layar" adalah solusi yang bagus untuk saya! (Selama saya tidak SHUTDOWN laptop saya). Apakah tidak ada cara untuk "bertahan" pada "layar" sesi sehingga saya dapat mematikannya dan kemudian melampirkan kembali ke sesi?

Sathyajith Bhat
sumber
Apakah Anda menjalankan layar pada sistem Linux jarak jauh?
Sam Miller
apakah mungkin untuk menjelaskan prosesnya?
ennuikiller

Jawaban:

32

Sepertinya Anda menjalankan sesi layar di laptop Anda. Kemudian sshing dari sesi layar ke host jarak jauh. Mematikan laptop akan mematikan proses layar lokal, yang pada gilirannya membunuh sesi ssh.

Yang ingin Anda lakukan adalah ssh dari laptop Anda ke host jarak jauh. Kemudian mulailah sesi layar pada host jarak jauh. Saat laptop Anda dimatikan, sesi ssh akan mati, tetapi sesi layar jauh akan tetap ada.

Lain kali Anda masuk ke sistem jarak jauh, Anda dapat melampirkan kembali sesi layar dengan "layar -r" atau jika Anda memiliki beberapa sesi layar "layar -r <pid>".

Catatan: jika Anda lupa untuk melepaskan dari sesi layar jauh sebelum ssh terbunuh, sesi layar mungkin berpikir itu masih terpasang. Dalam hal ini, Anda harus melakukan "screen -dr <pid>" untuk melepaskan sesi terlebih dahulu.

erichui
sumber
4
Omong-omong, jika saya ingat dengan benar, menekan Ctrl+Adiikuti oleh Dketika Anda berada di screenakan melepaskan sesi layar.
David Z
@ Bersihkan ini benar, Anda juga bisa menutup terminal atau sesi ssh dan layar akan tetap terbuka. "screen -raAd" akan dipasang kembali.
Chris
Bagaimana saya bisa memulai sesi layar pada host jarak jauh?
kebodohan
15

Anda dapat menggunakan nohupuntuk memulai proses yang akan terus berjalan setelah Anda keluar dari mesin. Mungkin itu yang Anda cari.

John Smith
sumber
Untuk proses yang sudah berjalan, Anda dapat melakukan ^ Z dan kemudian disownuntuk menciptakan apa yang saya percayai adalah efek yang setara. disownadalah bashism yang mungkin tersedia atau tidak tersedia pada shell lain.
intuited
+1 untuk nohup. Masalahnya ^Zadalah ia menghentikan proses. Tidak ada cara untuk latar belakang suatu proses tetapi tetap berjalan tanpa tersendat.
detly
6

Jika Anda mengaktifkan kembali sesi jarak jauh screen, Anda dapat mematikan laptop dengan aman.

chryss
sumber
Tidak yakin apakah secara universal jelas bahwa sesi layar yang dilepaskan harus ada di server jarak jauh.
intuited
6

Titik layar untuk menjalankannya di server dan lepaskan dengan CTRL+ A+ D.

Peter Mortensen
sumber
2

Gunakan nohup. Pilihan lain untuk menggunakan VNC. Buat sesi VNC di server. Kemudian sambungkan kapan pun Anda bekerja. (Lebih berguna ketika proses panjang menggunakan beberapa GUI - sebuah IDE misalnya)

Jayan
sumber
0

Jika server ini memiliki KVM jarak jauh ILO / DRAC / Lainnya, dll, Anda mungkin dapat terhubung ke konsol dan berinteraksi di sana. Karena sesi yang dimulai pada dasarnya bersifat lokal, menjatuhkan koneksi dari laptop Anda tidak akan menghasilkan apa-apa.

DHayes
sumber