이미 실행중인 프로세스를 화면으로 이동


222

제 사무실에서는 일상적으로 VNC를 통해 Linux 박스에 연결되어있는 것을 보게됩니다.

때로는 콘솔에서 원격 작업을 시작하고 나중에 예상보다 훨씬 오래 실행된다는 것을 알게됩니다. (처음에는 화면 아래에서 시작해야 했음 ...)

VNC 세션을 열린 상태로 유지하기 위해 워크 스테이션을 밤새 실행하고 싶지 않습니다. 이미 실행중인 원격 작업을 원격 세션의 화면 세션으로 이동하여 워크 스테이션의 전원을 끄고 다음 날 아침에 다시 연결할 수 있습니다.

이 작업을 어떻게 수행 할 수 있습니까?


2
그리고 그것은 속임수 serverfault.com/questions/49877/…입니다 -그것은 할 수없는 것 같습니다.
Paul Dixon




screenify 스크립트를 검색하십시오.
Vashu

답변:


217

정확하게 reptyr을 살펴보십시오 . github 페이지에는 모든 정보가 있습니다.

reptyr- "재검사"프로그램을위한 도구입니다.

reptyr는 기존의 실행중인 프로그램을 가져 와서 새 터미널에 연결하는 유틸리티입니다. ssh를 통해 장기 실행 프로세스를 시작했지만 중단하고 중단하고 싶지 않습니까? 화면을 시작하고 reptyr을 사용하여 화면을 잡고 ssh 세션을 종료하고 집으로 향하십시오.

용법

렙 티르 PID

"reptyr PID"는 id PID로 프로세스를 가져 와서 현재 터미널에 연결합니다.

연결 후 프로세스는 ^ C 및 ^ Z를 포함하여 새 터미널에서 입력을 받아 출력을 출력합니다. (안타깝게도, 백그라운드를 배경으로하더라도 여전히 이전 터미널에서 "bg"또는 "fg"를 실행해야합니다. 쉘을 패치하지 않고는 합리적인 방법으로 고칠 수 없습니다.)


22
나처럼 위의 링크를보고 소스에서 프로그램을 설치하는 것을 간략하게 고려했다면 apt-get데비안 시스템 에서 멀리 떨어져 있습니다.
mlissner

3
이것은 훌륭하게 작동합니다. 이전에 어떻게 보지 못했습니까?
deed02392

3
대단해! 내가 할 수 있다면 나는 그것을 10 번 찬성했다! 또한, reptyr은 RedHat repos에서도 사용 가능합니다. 그냥 'yum install'을 얻으십시오.
Mark J. Bobak

5
가장 사소한 경우를 제외하고는 작동하지 않습니다.Unable to attach. (This most commonly means that 11690 has a suprocesses)
Mehrdad

2
적어도 루트로서, 당신은 사용할 수 있습니다reptyr -T PID
ChristophK

45

당신은 이것을 쉽게 할 수 없습니다. 콘솔을 연 후 가장 먼저 화면을 시작하는 습관을들이는 것이 좋습니다.

그러나 실제 문제의 경우 다른 시도가 있습니다. 터미널에서 작업을 시작한 후 ctrl-z 및을 입력하여 백그라운드를 지정하십시오 bg. 그 후, 작업을 상위 쉘에서 분리하십시오. bash에서 할 것 disown -h %<jobid>입니다. 그 후에 터미널을 안전하게 닫을 수 있으며 작업이 계속 실행됩니다.


3
이것은 내 경우에 매우 효과적이었습니다. reptyr와 retty는 프로세스를 파악하지 못했지만 터미널을 닫고 프로세스를 실행 상태로 두어야했습니다.
STW

10
참고 : 후 부인 하는 과정을 -ing 그것을 할 수 reptyr 내부에 -ed 화면 .
Adam

1
이것은 내 실행중인 프로그램을 죽였습니다 :(
Mehrdad

39

Linux를 사용하면서 새로 시작된 화면 프로세스에서 retty를 사용하는 것은 어떻습니까?

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

HTH

건배,


1
레티를 몰랐어요, 고마워요 그러나, 내가 생각하고있는 장기 실행 작업의 경우, 나는 "매우 가볍게 테스트 된"도구를 사용하는 것을 꺼려합니다. 나는 얼 솔루션으로 간다.

1
젠투에는 retty 볼
세르게이

4858에 연결할 수 없음
Arnold Roa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.