GNU 화면에서 시작된 프로그램을 다른 터미널로 이동 내가 사용 종료하고자 screen하지만 script_x.sh아직 완료되지

screen내부에서 실행중인 프로세스를 유지하면서 GNU 인스턴스를 종료하고 싶습니다 .

그래서 일반 터미널 에뮬레이터 프로그램을 열고 화면을 실행했습니다. 그런 다음 해당 인스턴스를 사용 screen하여 실행했습니다 ./script_x.sh. 자, 어떤 이유로, 내가 사용 종료하고자 screen하지만 script_x.sh아직 완료되지 않은 그 작업을하고 나는 나의 진행 상황을 상실 기꺼이 아니에요.

일반 터미널 에뮬레이터에서 계속 작업 할 수 있도록 활성 프로세스를 활성 상태로 유지할 수 있습니까?



답변

TLDR : 실용 답변 : 아니요.

더 긴 답변 :

이론적으로는 가능합니다. 경우 당신이 뭔가를 시작 nohup myprog &화면 내부에서 그것은 계속 실행됩니다. 행업 신호를 무시하고 입력이 없지만 이론적으로는 계속 작업 할 수 있습니다.

실제로는 그렇지 않습니다. 따라서 실행중인 프로세스에 디버거를 연결하고 파일 핸들을 다시 쓰고 화면을 닫을 때 프로세스가 -1 신호를 처리하는지 확인하지 않으면 대답은 아니오입니다.

이 작업을 수행 할 준비가되면 누군가 집에서 [SU]를 가리키는 책갈피가 집 있습니다. 쉬운 일이 아니기 때문에 놀랍도록 절약되었습니다.


답변

reptyr이미 실행중인 응용 프로그램을 다른 터미널에 다시 연결 하는 데 사용할 수 있습니다 . 그러나 백그라운드로 프로세스를 보내는 데 약간의 문제가 있습니다.

방금 테스트 ( htop내부 screen에서 시작 reptyr하여 다른 터미널에서 kill screen)하고 정상적으로 작동하는 것 같습니다. 여전히 정말 해키 솔루션이므로 보장 할 수 없습니다.


답변

예 ( “killing”이 실제로 kill되지 않는 경우), 실제로는 정확히 화면의 용도입니다. 설명서를 확인하고 다음 중 어느 것이 귀하의 요구에 맞는지 시험해보십시오.

C-a d
C-a C-d     (detach)      Detach screen from this terminal.

C-a D D     (pow_detach)  Detach and logout.

그런 다음 선택에 따라 화면의 -D / -d -R / -r 명령 줄 옵션이 필요합니다.


답변