Halihazırda çalışan bir işlemi Ekrana taşıma


222

Ofis işim rutin olarak VNC aracılığıyla bir Linux kutusuna bağlanmamı görüyor.

Bazen konsolda uzak bir işe başlıyorum ve daha sonra beklenenden daha uzun sürdüğünü fark ediyorum. (İlk önce ekranın altında başlamış olmalıydı ...)

Sadece VNC oturumunu açık tutmak için iş istasyonumu gece boyunca çalıştırmak istemiyorum; Halen çalışmakta olan uzaktaki işi bir Ekran oturumuna (uzak kutuda) taşımak istiyorum, böylece iş istasyonunu kapatabilirim (ve ertesi sabah yeniden bağlanacağım).

Eğer bu nasıl yapılabilir?


2
ve bu bir dupe, serverfault.com/questions/49877/… - yapılamaz gibi görünüyor.
Paul Dixon




Senaryo betiğini arayın.
Vashu

Yanıtlar:


217

Tam olarak yapan reptyr'e bir bakın . Github sayfası tüm bilgilere sahiptir.

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

reptyr mevcut çalışan bir programı alıp yeni bir terminale eklemek için bir yardımcı programdır. Ssh üzerinden uzun süredir devam eden bir süreç başlattım, fakat ayrılmak zorunda kalmak zorunda değil miyiz? Sadece bir ekran başlatın, onu almak için reptyr kullanın ve ardından ssh oturumunu öldürün ve eve gidin.

KULLANIM

reptyr PID

"reptyr PID" kimliği PID ile alır ve mevcut terminalinize ekler.

Eklemeden sonra, işlem ^ C ve ^ Z de dahil olmak üzere yeni terminale girdi alır ve çıktı yazar. (Ne yazık ki, arkaplanı yaparsanız, eski terminalde "bg" veya "fg" komutunu çalıştırmanız gerekecektir.


22
Benim gibi, yukarıdaki bağlantıya baktınız ve kısaca programı kaynaktan kurmayı düşündüğünüzde, yürekten başlayın: bu sadece apt-getDebian sistemlerinde bir uzağa.
mlissner

3
Bu harika çalışıyor, bunu daha önce nasıl görmedim?
de02392

3
Bu harika! Yapabilseydim 10 kez daha fazla oy kullanırdım! Ayrıca, reptyr RedHat depolarında da mevcuttur. Sadece onu almak için 'yum install'.
Mark J. Bobak

5
En önemsiz durumlar dışında çalışmaz:Unable to attach. (This most commonly means that 11690 has a suprocesses)
Mehrdad

2
En azından root olarak kullanabilirsinizreptyr -T PID
ChristophK

45

Bunu kolayca yapamazsınız. Konsolu açtıktan sonra ilk yaptığınız ekran olarak ekranı başlatmayı bir alışkanlık haline getirmenizi öneririm.

Ancak, asıl probleminiz için deneyebileceğiniz başka bir şey daha var: işinizi terminalden başlattıktan sonra, ctrl-z yazıp ardından arkaplanı kullanarak arka planınızı yapın bg. Bundan sonra, işi ana kabuğundan çıkarın; bash yapardın disown -h %<jobid>. Bundan sonra, terminali güvenle kapatabilirsiniz ve iş çalışmaya devam edecektir.


3
Bu benim davam için çok iyi çalıştı. reptyr ve retty ikisi de süreci kapatamadı, ancak tek ihtiyacım olan bir terminali kapatarak işlemi çalıştırmak için ayrılmaktı.
STW

10
Bilginize: sonra inkâr sürecini -Ing o edilebilir reptyr içine -ed ekrana .
Adam,

1
Bu benim koşu programımı öldürdü :(
Mehrdad

39

Linux kullanırken, yeni başlatılan ekran sürecinde retty kullanmaktan ne haber?

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

HTH

şerefe,


1
Retty bilmiyordum, teşekkürler. Ancak, aklımdaki uzun süredir devam eden işler için, “çok hafif bir şekilde test edilmiş” olarak adlandırılan bir araç kullanmak konusunda biraz isteksizim. Earl’ın çözümü ile giderim.

1
Gentoo'da hiç retty görmek
Sergei

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.