Pertanyaan Memindahkan proses yang sudah berjalan ke Screen


Pekerjaan kantor saya secara rutin melihat saya terhubung ke kotak Linux melalui VNC.

Kadang-kadang saya memulai pekerjaan jarak jauh di konsol, dan kemudian menyadari bahwa itu berjalan lebih lama dari yang diharapkan. (Seharusnya memulai yang di bawah Layar di tempat pertama ...)

Saya tidak ingin menjaga workstation saya berjalan semalaman hanya untuk menjaga sesi VNC terbuka; Saya ingin memindahkan pekerjaan jarak jauh yang sudah berjalan ke dalam sesi Layar (di kotak jarak jauh), sehingga saya dapat mematikan workstation (dan menyambung kembali keesokan paginya).

Bagaimana ini bisa dilakukan, jika sama sekali?


205
2017-08-18 11:03




dan itu penipuan, serverfault.com/questions/49877/… - Sepertinya itu tidak bisa dilakukan. - Paul Dixon
superuser.com/questions/28568/screen-a-running-process - warren
Juga lihat Bagaimana saya bisa menolak proses yang berjalan dan menghubungkannya dengan shell layar baru?. - dma_k
Kemungkinan duplikat dari Dapatkah saya membatalkan / menyaring proses yang sudah dimulai? - scai
Cari skrip skripify. - Vashu


Jawaban:


Silahkan lihat reptyr, yang melakukan hal itu. Halaman github memiliki semua informasi.

reptyr - Alat untuk program "re-ptying".

reptyr adalah utilitas untuk mengambil   menjalankan program yang ada dan melampirkan   ke terminal baru. Memulai a   proses yang berjalan lama melalui ssh, tapi   harus pergi dan tidak mau   mengganggu itu? Mulai saja layar, gunakan   reptyr untuk mengambilnya, lalu bunuh   sesi ssh dan langsung pulang.

PEMAKAIAN

reptyr PID

"reptyr PID" akan mengambil proses   dengan id PID dan lampirkan ke Anda   terminal saat ini.

Setelah melampirkan, proses akan memakan waktu   masukan dari dan tulis keluaran ke yang baru   terminal, termasuk ^ C dan ^ Z.   (Sayangnya, jika Anda melatarbelakanginya,   Anda masih harus menjalankan "bg" atau   "fg" di terminal lama. Ini adalah   kemungkinan tidak mungkin untuk memperbaiki dalam   cara yang masuk akal tanpa menambal Anda   kulit.)


192
2018-06-28 09:25



Jika, seperti saya, Anda melihat tautan di atas dan secara singkat mempertimbangkan untuk menginstal program dari sumber, ambil hati: itu hanya sebuah apt-get jauh di sistem Debian. - mlissner
Ini berfungsi dengan baik, bagaimana saya tidak melihat ini sebelumnya? - deed02392
Ini luar biasa! Saya akan upvote 10 kali jika saya bisa! Juga, reptyr tersedia di RedHat repo juga. Hanya 'yum install' untuk mendapatkannya. - Mark J. Bobak
Tidak berfungsi kecuali dalam kasus yang paling sepele: Unable to attach. (This most commonly means that 11690 has a suprocesses) - Mehrdad
Setidaknya sebagai root, Anda bisa menggunakannya reptyr -T PID - ChristophK


Anda tidak dapat melakukan ini dengan mudah. Saya akan menyarankan Anda untuk memulai layar sebagai hal pertama yang Anda lakukan setelah membuka konsol.

Namun, untuk masalah Anda yang sebenarnya, ada hal lain yang dapat Anda coba: setelah meluncurkan pekerjaan Anda dari terminal, latar belakangnya dengan mengetik ctrl-z dan kemudian bg. Setelah itu, lepaskan pekerjaan dari cangkang induknya; di bash Anda akan lakukan disown -h %<jobid>. Setelah itu, Anda dapat menutup terminal dengan aman dan pekerjaan akan terus berjalan.


42
2017-08-18 11:11



Ini bekerja sangat baik untuk kasus saya. reptyr dan retty gagal mengambil proses, tetapi yang saya butuhkan hanyalah menutup terminal dan membiarkan prosesnya berjalan. - STW
FYI: setelah memungkiri-sesuatu prosesnya reptyr-di dalam layar. - Adam
Ini membunuh program yang sedang berjalan saya :( - Mehrdad


Ketika Anda menggunakan Linux, bagaimana dengan menggunakan retty di dalam proses layar yang baru diluncurkan?

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

HTH

tepuk tangan,


37
2017-08-18 12:09



Tidak tahu retty, terima kasih. Namun, untuk jenis pekerjaan jangka panjang yang ada dalam pikiran saya, saya agak enggan menggunakan alat yang mengacu pada dirinya sendiri sebagai "sangat ringan diuji". Saya pergi dengan solusi earl.
lihat tidak ada retty di Gentoo - Sergei
tidak bisa melampirkan ke 4858 - Arnold Roa