Apakah ada cara untuk membuat sesi "Layar" selamat reboot?

25

Saya menggunakan utilitas Layar dan ingin mempertahankan sesi ketika mesin reboot. Jika tidak memungkinkan, Anda dapat merekomendasikan alternatif lain untuk Layar yang memungkinkan untuk mempertahankan sesi di antara reboot.

Saya menggunakan Ubuntu Server 10.04 (Lucid Lynx) jika itu penting.

Saya memiliki beberapa sesi dibuka melalui Layar. Ketika mesin reboot semua sesi itu hilang, dan saya harus membukanya kembali. Saya ingin menemukan cara untuk melestarikan sesi Screen tersebut.

Sergey G
sumber
apa yang kamu coba? apakah Anda ingin menyimpan sejarah atau semua yang berjalan di sesi layar Anda?
Marcel G
1
Tidakkah melakukan ini mengalahkan tujuan mem-boot ulang?
Brian Knoblauch
apa yang kamu maksud dengan 'sesi'? Apakah maksud Anda bahwa Anda memiliki koneksi ssh ke host lain di beberapa layar windows? Jika itu yang Anda maksud, maka tulis file .screenrc dan tentukan pengguna @ host yang ingin Anda slogin lakukan triknya ..., jika Anda telah mengaktifkan ssh login tanpa kata sandi. Kemudian ketika Anda memulai layar, semua koneksi ssh akan secara otomatis dimulai. Anda bahkan dapat memulainya dari rc.local (agak rumit, karena Anda harus memulainya dari su - yourusername), jadi ketika Anda login Anda dapat memasang kembali sesi layar yang sedang berjalan.
natxo asenjo
1
yang lebih penting, mengapa Anda me-reboot sepanjang waktu? Server Unix bukan windows server, mereka dirancang untuk waktu yang tinggi, mesin diketahui memiliki waktu bertahun-tahun (tanpa patch keamanan kernel). Jika Anda me-reboot karena patch keamanan kernel, maka lihatlah sesuatu seperti ksplice.
The Unix Janitor

Jawaban:

16

Pertama-tama, mari kita perjelas beberapa hal penting:

  1. Berapa banyak mesin yang terlibat? Dengan kata lain, apakah Anda terhubung ke mesin jarak jauh, atau apakah semuanya ada di mesin lokal Anda?
  2. Jika ada mesin remote yang terlibat, mesin mana yang me-reboot: apakah itu server atau klien?

Jika ada satu mesin yang terlibat, atau jika server sedang reboot, maka Anda sebagian besar kurang beruntung.

Jika Anda masuk ke mesin jarak jauh, tetapi perlu me-reboot mesin lokal Anda, maka itu tidak masalah selama Anda menjalankan layar pada mesin jarak jauh alih-alih mesin lokal Anda. Saya menyadari ini cukup jelas untuk setiap pengguna layar yang berpengalaman (bahkan sedikit berpengalaman), tapi saya sebutkan kalau-kalau itu mungkin membantu.

Namun kemungkinan lain (sekali lagi, apakah ini berguna untuk Anda tergantung pada keadaan Anda) adalah menjalankan mesin dengan layar pada VM. Misalkan itu adalah server fisik jarak jauh dan perlu di-boot ulang, tetapi ada OS tamu di (mis.) VMware. Anda dapat menangguhkan OS tamu dan mulai lagi setelah perangkat keras dinyalakan kembali. Itu semua tergantung pada mengapa Anda perlu mem-boot ulang, yang tidak ditentukan, dan seberapa banyak kontrol yang Anda miliki atas mesin, dan apakah Anda bersedia melakukan semua masalah itu.

Tidak ada solusi MUDAH, dan mungkin tidak ada solusi yang bekerja untuk Anda. Tapi semoga beruntung.

Jika Anda masuk ke banyak mesin, sepertinya terlalu merepotkan untuk menjalankan layar pada semua mesin jarak jauh secara terpisah, dan memang begitu. Dalam hal ini berguna untuk memiliki layar menjalankan mesin perantara, yang dapat memiliki banyak jendela layar, masing-masing login ke mesin remote lain. Selama mesin perantara tetap menyala, Anda dapat me-reboot mesin lokal Anda sendiri (atau mengemasnya di tas Anda dan membawanya pulang untuk malam itu, atau apa pun) dan layar terus berjalan pada mesin perantara. (Dan tentu saja jika ada mesin remote turun, Anda kehilangan koneksi ke mesin itu, tetapi sisa sesi layar Anda baik-baik saja.)

Tetapi kemungkinan besar Anda merujuk ke mesin jarak jauh atau satu-satunya mesin yang sedang direboot, dalam hal ini tidak ada cara sederhana untuk melakukan ini. CryoPID terdengar menjanjikan pada awalnya, tetapi situs webnya mengatakan itu tidak berfungsi untuk layar.

Tetapi ada satu opsi lain yang agak menjanjikan yang layak dijelajahi. (Apakah itu akan berhasil untuk Anda tergantung pada apa yang Anda coba lakukan.) Lihat ini di github.com: https://github.com/skoneka/screen-session/tree/master/ScreenSession/

iconoclast
sumber
+1 untuk cryoPID, tidak tahu tentang itu!
The Unix Janitor
ScreenSession terlihat menarik, dari uraiannya inilah yang saya inginkan
Sergey G
5

Dalam beberapa keadaan langka ini dimungkinkan (lihat CryoPID atau CryoPID2 ), tetapi secara umum ini sulit, jadi tidak bisa dilakukan.

pjz
sumber
Tautan rusak.
kasperd
4

Alih-alih menggunakan layar, gunakan VM Virtualbox kecil dan bekerja di dalamnya. Kemudian Anda bisa hibernasi, reboot host, lalu bangun VM kembali (seperti menutup dan membuka kembali tutup laptop). Koneksi SSH ke host jarak jauh mungkin tidak akan bertahan dengan metode ini, saya tidak berpikir itu mungkin untuk menjamin itu.

Gayus
sumber
Sebenarnya saya ingin memperbarui jawaban saya untuk tmux-resurrect
Gaius
tmux-kebangkitan tampak seperti solusi yang sangat bagus.
serv-inc
4

Kamu tidak bisa. Tentu saja tidak pada mesin yang sama

Crankyadmin
sumber
Apa artinya "Tidak bisa melakukan" ?
Peter Mortensen
1

Dalam semua ini, Layar itu sendiri sangat marjinal. Bukan Layar yang ingin Anda "simpan", kan ?, tetapi lingkungan dalam berbagai sesi layar, apa pun itu.

Anda tampaknya menyarankan bahwa menyimpan sesi Layar akan mencakup proses SSH di dalamnya dan segala macam. Apa yang berjalan di dalam Layar sama sekali bukan urusan Screen, dan itu adalah hal-hal yang akan sulit untuk "disimpan" ... apa pun yang sebenarnya berarti jika dapat diterapkan.

Chris Phillips
sumber