Soru Halen devam eden bir işlemi ekrana taşıma


Ofis işim rutin olarak beni VNC üzerinden bir Linux kutusuna bağlıyor.

Bazen konsolda uzak bir işe başlıyorum ve daha sonra beklenenden daha uzun sürdüğünü anlıyorum. (İlk etapta bir ekrana başlamalıydı ...)

VNC oturumunu açık tutmak için iş istasyonumun bir gecede çalışmaya devam etmesini istemiyorum; Bu zaten çalışan uzaktan işi bir Screen oturumuna (uzak kutuda) taşımak istiyorum, bu yüzden iş istasyonunu kapatıp (ve ertesi sabaha tekrar bağlan).

Bu nasıl yapılabilir, hiç değilse?


206
2017-08-18 11:03


Menşei


ve bu bir dupe serverfault.com/questions/49877/... - Yapamayacak gibi görünüyor. - Paul Dixon
superuser.com/questions/28568/screen-a-running-process - warren
Ayrıca bkz. Çalışan bir işlemi nasıl reddedebilirim ve yeni bir ekran kabuğuna nasıl ilişkilendirebilirim?. - dma_k
Olası kopya Halihazırda başlatılmış bir işlemi nohup / ekranlayabilir miyim? - scai
Screenify komut dosyasını arayın. - Vashu


Cevaplar:


Şuna bir bak reptyr, tam olarak bunu yapar. Github sayfası tüm bilgilere sahiptir.

reptyr - "yeniden ptying" programları için bir araç.

reptyr bir almak için bir yardımcı programdır   mevcut çalışan program ve ekleme   yeni bir terminale. Başladı   ssh üzerinden uzun süren işlem   ayrılmak ve istememek   kesmek mi? Sadece bir ekran başlat, kullan   Reptyr onu kapmak ve sonra öldürmek   ssh oturumu ve eve baş.

KULLANIM

reptyr PID

"reptyr PID" süreci kapacak   kimlik PID ile ve ona eklemek   mevcut terminal

Ekledikten sonra işlem gerçekleşecek   çıktıyı yeni girdiye yaz ve yaz   ^ C ve ^ Z dahil olmak üzere terminal.   (Ne yazık ki, eğer arka plan yaparsanız,   "bg" yi çalıştırmanız gerekecek veya   Eski terminalde "fg". Bu   büyük ihtimalle düzeltmek imkansız   yama olmadan makul bir şekilde   kabuk.)


194
2018-06-28 09:25



Eğer benim gibi, yukarıdaki bağlantıya bakarsanız ve programı kaynaktan kurmayı kısaca düşündünüz mü, kalpten: sadece bir apt-get Debian sistemlerinde - mlissner
Bu harika çalışıyor, bunu daha önce nasıl görmedim? - deed02392
Bu harika! Yapabilseydim 10 kere uzatırdım! Ayrıca, reptyr RedHat reposlarında da mevcuttur. Sadece 'yum yüklemek' almak için. - Mark J. Bobak
En önemsiz durumlar dışında çalışmaz: Unable to attach. (This most commonly means that 11690 has a suprocesses) - Mehrdad
En azından root olarak kullanabilirsiniz reptyr -T PID - ChristophK


Bunu kolayca yapamazsın. Konsolu açtıktan sonra yaptığınız ilk şey olarak ekrana başlamak için alışkanlık haline getirmenizi öneririm.

Ancak, gerçek probleminiz için, deneyebileceğiniz başka bir şey var: işinizi terminalden başlattıktan sonra, ctrl-z yazıp bg. Bundan sonra işi ana kabuktan ayırın; bash yaparsın disown -h %<jobid>. Bundan sonra, terminali güvenle kapatabilir ve iş çalışmaya devam edecektir.


42
2017-08-18 11:11



Bu benim durumum için çok iyi çalıştı. Reptyr ve Retty'nin ikisi de süreci ele geçiremedi, ancak tek ihtiyacım olan bir terminali kapatarak sürecin başlamasını sağlamaktı. - STW
FYI: sonra sahip çıkmamak-sürüm süreci olabilir reptyriçeride ekran. - Adam
Bu çalışan programımı öldürdü :( - Mehrdad


Linux'u kullanırken, yeni başlatılan ekran sürecinin içinde retty'yi kullanmaktan ne haber?

$ screen -S my_process
$ retty $(pgrep my_process)
/redraw

HTH

şerefe,


37
2017-08-18 12:09



İskeleyi bilmiyordum, teşekkürler. Ancak, aklıma gelen uzun süreli işler için, “çok hafifçe test edilmiş” olarak adlandırılan bir aracı kullanmak konusunda biraz isteksizim. Earl'ın çözümüyle giderim.
Gentoo'da hiç iskele görmek yok - Sergei
4858'e eklenemiyor - Arnold Roa