답변:
분명히 나는 당신의 질문을 처음으로 잘못 읽었으므로 업데이트 된 답변은 다음과 같습니다.
프로그램을 백그라운드로 보낸 후에는 먼저 PID를 찾아야합니다.
pgrep foo.sh
그런 다음 gdb
해당 프로세스에 첨부하는 데 사용할 수 있습니다
gdb -p <PID>
에서 gdb
이 프로그램에 기록 어디 다음 변경
p dup2(open("/path/to/file",577, 420), 1)
p dup2(1, 2)
그런 다음 프로세스에서 분리하고 종료 gdb
detach
quit
약간의 설명
577
에 해당 O_CREAT|O_WRONLY|O_TRUNC
420
에 해당 S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH
open
파일을 호출 하면 파일 을 열고 0 바이트로 자르거나 파일 권한이없는 경우 올바른 파일 권한을 가진 새 파일을 만듭니다dup2
호출에 의해 반환되는 파일 기술자를 중복하는 open
설명을 파일로 1
(인 stdout
)dup2
파일 디스크립터를 복제 1
로 2
(인 stderr
)