GNU ekran oturumunun tamamının kaydedilmesi


32

Bir yeniden başlatma işleminden sonra her şeyi yeniden yükleyebilmem için GNU ekran penceresinin (veya yalnızca standart bir kabuğun) "durumunu" sürdürmek mümkün mü:

  • Açılan mermi sayısı
  • Her kabuğun adı
  • Her kabuğun geçerli dizini
  • Her kabuğun tarihi
  • Mümkünse, ortam değişkenleri

Yanıtlar:


19

Tam bir ekran oturumu kaydetmek gerçekten mümkün değil.

Yapabileceğin şey uygun bir şey oluşturmak. .screenrc sisteminizi yeniden başlattıktan sonra bazı şeyleri ayarlayabilecek .

Burada listelediklerinize bazı yorumlar:

  • Açılan mermi sayısı
  • Her kabuğun adı
  • Her kabuğun geçerli dizini

.screenrcBaşlangıçta belirli mermileri açmak için bunda böyle bir şey kullanıyorum :

## set the default shell
shell                   zsh

# screens
screen -t 'zsh'
screen -t 'mutt' mutt
screen -t 'zsh' /home/user/bin/scriptToRun
[..]

Pencere adınız olarak '' ile dizeyi alırsınız, sonra ad varsayılan kabuğunuzda yürütülür. İstediğiniz betiği ekleyin, örneğin belirli bir dizinde değişiklik yapın ve bazı günlükleri açın.

  • Her kabuğun tarihi

Seanslarınızdaki mermilerin tarihini paylaşmayı hiç düşündünüz mü? IMHO bu işleri çok daha kolaylaştırıyor. ZSH yılında onun ile yapılan setopt SHARE_HISTORYiçinde senin.zshrc

  • Mümkünse, ortam değişkenleri

Buna gerçekten ihtiyaç duyuyorsanız ve herhangi bir takas istemiyorsanız, ekranın geçerli durumunu okuyan bir kabuk betiği hakkında düşünebilirsiniz, mermi sayısını, ortam değişkenlerini vb. Kaydeder ve bu bilgiyi bir başlangıç ​​betiğine koyar. tarafından aranıyor .screenrc. Benim için bu çabaya değmez çünkü yeniden başlatmanın ardından temiz bir ortamı takdir ediyorum, eğer ekran için varsayılan pencereleri özelleştirebilirsem.


Önerileriniz için teşekkürler. Tarihimi bash ile paylaşmanın bir yolunu buldum (zsh ile olduğu kadar basit değil), bu yüzden ısrar edilen tek bir komut akışım var. .Screenrc ile ilgili olarak, düşünmeliydim. Ne yazık ki, yalnızca belirli komut dosyalarını çalıştırabilirsiniz ('cd' gibi komutlar çalışmıyor), ama bu iyi olmalı. Bir betiği olan bir kabuk başlatabilirsem, ortam değişkenlerini umursamıyorum.
Barthelemy

cd, kabuğunuzun yerleşik bir işlevidir, bir cd komutu bir "kabuk" dışında bir anlam ifade etmezdi. Sonra yeni kabuğunuz bu dizine değişecektir.
echox

evet bu ayrımı anlıyorum, sadece komutların bir şekilde kabuğa geçtiğini ve sonra da kabuğun içinde çalıştırıldığını düşündüm. Ama başlangıç ​​senaryolarını yazmada hiçbir sıkıntım yok :-) Paylaşılan tarih müthiş bir fikirdi btw, gerçekten beğendim.
Barthelemy

10

Ekran oturumu adı verilen bir projeye rastladım . Bir dereceye kadar GNU Screen oturumlarını kaydetmenizi ve yeniden yüklemenizi sağlar.


2

Kriyopid adı verilen bir sürecin durumunu dondurmak için bir araç var . Ancak, şu anda GNU ekranı ile çalışmamaktadır çünkü alt süreçlerin hiyerarşisini yeniden oluşturmayı desteklememektedir. Gelecekte bunu başarmak istediklerini belirtiyorlar, ancak proje şu anda çok aktif görünmüyor. Bununla birlikte, onların ilerlemelerini izlemek isteyebilirsiniz.


0

Solaris yıllarında benzer bir şey inşa ettim. Ekranla ilgili bile değil; oturumla ilgili idi. "eğer $ TTY = her neyse". echox'un doğru fikri var.

pucu: Bunu birden fazla makinede yapıyorsanız, her bir kullanıcının nfs monte / home veya benzeri bir sistemle aynı olmak yerine, oraya giriş yaparken ne yapılması gerektiğine ilişkin kendi tanımını hak ettiğini kabul edin.

HTH, -pbr

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.