it-swarm-id.com

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 jauh lebih lama dari yang diharapkan. (Seharusnya memulai yang di bawah Layar di tempat pertama ...)

Saya tidak ingin menjaga workstation saya tetap berjalan hanya untuk menjaga sesi VNC terbuka; Saya ingin memindahkan pekerjaan jarak jauh yang sudah berjalan ke sesi Layar (pada kotak jarak jauh), jadi saya dapat mematikan workstation (dan menghubungkan kembali keesokan paginya).

Bagaimana ini bisa dilakukan, jika sama sekali?

232
DevSolar

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

reptyr - Alat untuk program "re-ptying".

reptyr adalah utilitas untuk mengambil program yang sedang berjalan dan melampirkannya ke terminal baru. Memulai proses yang berjalan lebih lama dari ssh, tetapi harus pergi dan tidak ingin menyela? Mulai saja layar, gunakan reptyr untuk meraihnya, lalu matikan sesi ssh dan langsung menuju rumah.

PEMAKAIAN

pID reptyr

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

Setelah melampirkan, proses akan mengambil input dari dan menulis output ke terminal baru, termasuk ^ C dan ^ Z. (Sayangnya, jika Anda latar belakang itu, Anda masih harus menjalankan "bg" atau "fg" di terminal lama. Ini kemungkinan tidak mungkin untuk diperbaiki dengan cara yang wajar tanpa menambal Shell Anda.)

229
DaveJohnston

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

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

46
earl

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

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

HTH

bersulang,

39
Rob Wells