Vraag Een reeds actief proces naar het scherm verplaatsen


Mijn kantoorjob ziet me routinematig via VNC verbonden met een Linux-box.

Soms start ik een externe taak op de console en realiseer ik me later dat deze veel langer duurt dan verwacht. (Had die in het begin moeten beginnen onder Scherm ...)

Ik wil mijn werkstation niet 's nachts laten draaien om de VNC-sessie open te houden; Ik zou die reeds-lopende verre baan in een zitting van het Scherm (op de verre doos) willen verplaatsen, zodat kan ik het werkstation (uitzetten en de volgende ochtend opnieuw verbinden).

Hoe kan dit worden gedaan, of helemaal niet?


205
2017-08-18 11:03


oorsprong


en het is een dupe, serverfault.com/questions/49877/... - lijkt het niet mogelijk. - Paul Dixon
superuser.com/questions/28568/screen-a-running-process - warren
Zie ook Hoe kan ik een lopend proces verwijderen en dit koppelen aan een nieuwe schermshell?. - dma_k
Mogelijk duplicaat van Kan ik een reeds gestart proces weergeven / screenen? - scai
Zoeken naar screenify-script. - Vashu


antwoorden:


Kijk even naar reptyr, wat precies dat doet. De github-pagina bevat alle informatie.

reptyr - Een hulpmiddel voor het opnieuw "pesten" van programma's.

reptyr is een hulpprogramma voor het nemen van een   bestaand lopend programma en bijvoegen   het naar een nieuwe terminal. Begonnen met   langlopend proces over ssh, maar   moeten vertrekken en niet willen   onderbreek het? Start gewoon een scherm, gebruik   reptyr om het te pakken, en dood dan de   ssh-sessie en ga naar huis.

GEBRUIK

reptyr PID

"reptyr PID" zal het proces vastleggen   met id PID en koppel deze aan uw   huidige terminal.

Na het bevestigen, zal het proces duren   invoer van en schrijf uitvoer naar het nieuwe   terminal, inclusief ^ C en ^ Z.   (Helaas, als je het achtergrondt,   je zult nog steeds "bg" of moeten uitvoeren   "fg" in de oude terminal. Dit is   waarschijnlijk onmogelijk om te repareren in een   redelijke manier zonder je te patchen   shell).


192
2018-06-28 09:25



Als je, zoals ik, naar de bovenstaande link hebt gekeken en kort hebt overwogen het programma vanaf de bron te installeren, neem dan je hart: het is maar een apt-get weg op Debian-systemen. - mlissner
Dit werkt geweldig, hoe heb ik dit niet eerder gezien? - deed02392
Dit is geweldig! Ik zou het 10 keer opwaarderen als ik kon! Reptyr is ook beschikbaar in RedHat-repo's. Gewoon 'yum install' om het te krijgen. - Mark J. Bobak
Werkt niet, behalve in de meest triviale gevallen: Unable to attach. (This most commonly means that 11690 has a suprocesses) - Mehrdad
Ten minste als root kunt u gebruiken reptyr -T PID - ChristophK


Je kunt dit niet gemakkelijk doen. Ik zou willen voorstellen om er een gewoonte van te maken om het scherm te starten als eerste na het openen van een console.

Voor uw werkelijke probleem is er echter nog iets dat u zou kunnen proberen: nadat u uw taak vanaf de terminal hebt gestart, moet u deze achtergrond maken door ctrl-z in te typen en vervolgens bg. Hierna ontkoppel je de taak van zijn bovenliggende shell; in bash zou je doen disown -h %<jobid>. Daarna kunt u de terminal veilig sluiten en blijft de taak actief.


42
2017-08-18 11:11



Dit werkte heel goed voor mijn zaak. reptyr en retty slaagden er niet in om het proces te pakken, maar het enige dat ik nodig had was om een ​​terminal te kunnen sluiten en het proces te laten lopen. - STW
Ter info: after verloochenen- hoe het proces kan zijn reptyrvan binnen scherm. - Adam
Dit heeft mijn lopende programma gedood :( - Mehrdad


Als u Linux gebruikt, hoe zit het met het gebruik van retty in het nieuw gelanceerde schermproces?

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

HTH

cheers,


37
2017-08-18 12:09



Ik wist niet van retty, bedankt. Voor het soort langlopende taken dat ik in gedachten heb, ben ik een beetje terughoudend in het gebruik van een tool die naar zichzelf verwijst als 'zeer licht getest'. Ik ga met de oplossing van Earl.
zie geen retty in Gentoo - Sergei
kan niet aan 4858 hechten - Arnold Roa