이 게시물 이 도움 이 될 수 있습니다. 권장 사항은 다음과 같습니다.
- 프로세스 배경 (Ctrl-Z, bg 사용 )
- 실행 [작업 ID] 부인 -h %를 (당신이 tcsh를 위해 번역해야 할 것이다, 그래서 가능성이 떠들썩한-주의를)
나쁜 소식은 물론이다 BG는 이미 백그라운드로 될 수 ... 프로세스가 실행되는 동일한 쉘에서 수행 될 필요가있을 것이다 ...하지만.
정말 나쁜 소식은 것입니다 부인의 호출이 같은 쉘에서 수행해야 할 수 있습니다. 어떤 경우에, 당신은 망했다. 그러나 확실하지 않습니다. 어쩌면 루트가 강제로 연결을 끊을 수 있습니다.
흠. 가능한 좋은 뉴스 - 않습니다 tcsh의 부인을 자동으로 :
tcsh가 비정상적으로 종료되면 백그라운드에서 실행중인 작업이 자동으로 종료됩니다.
따라서 장기 프로세스가 이미 백그라운드 인 경우 tcsh 부모를 종료하면 계속 진행할 수 있습니다. 이제 프로세스가 시작 터미널에서 연결이 끊어졌습니다. 그렇지 않은 경우 위의 "나쁜 소식"을 참조하십시오.
불행히도 화면이 아니므로 다시 연결되지 않습니다. 어쩌면 (첫 번째 링크에서) gdb로 가짜로 만들 수 있습니다.
[...] 더러운 해킹으로 프로세스의 stdout / stderr / stdin을 다시 열 수는 없습니다.
따라서 여전히 빈 화면 창을 만들 수 있습니다 (예 : 절전 모드로 실행).
그런 다음 gdb를 사용하여 프로세스에 연결하고, call close (0)
call close (1)
call close (2)
call open ( "/ dev / pts / xx", ...)
call dup (0)
dup (0)
분리 호출
프로세스 출력이 화면으로 이동합니다. 예를 들어 [sic]은 프로세스가 아니라 "sleep"명령을 종료하지만 OP에는 충분할 수 있습니다.
그 과정에서 "call dup (1)"과 "call dup (2)"도 없어야하는지 궁금합니다.