OP가 실제로 가능한 방법이 아닌 RAM을 의미 한다고 가정하고 스크립트가 실행되는 프로세스에 코어 파일 제한이 0이라고 가정하면 (보통 기본 설정 ) 프로세스에 첨부해야합니다. 프로세스 이미지를 포함하고 코어 파일을 생성하기 위해 ABRT 신호를 사용하기 위해 코어 한계를 충분히 큰 값으로 설정하거나 , 프로세스에 접속하여 RAM에서 프로세스의 코어 이미지를 생성 할 수 있는 도구를 사용 하십시오.cat /proc/PID/limits
gdb
- 설치
gdb
실행중인 스크립트 또는 루트 소유권과 동일한 소유권을 가진 일부 쉘에서 :
- 수행
ps ax
프로세스 ID를 찾아 (PID)
gdb -p PID
이렇게하면 프로세스 실행이 계속되지 않지만 프로세스 테이블에서 제거되지는 않습니다.
- gdb에서 다음 명령을 실행하십시오
generate-core-file
Saved corefile core.15113
PID가 15113이라고 가정하면 gdb는 다음과 같이 응답해야합니다 .
- gdb에서 다음 명령을 실행하십시오
detach
스크립트가 계속 실행됩니다 (다시 시작).
- gdb에서 다음 명령을 실행하십시오
quit
- 쉘에서 실행
strings core.15113 > my_script.sh
my_script.sh
일부 편집기에서를 엽니 다 . 스크립트 텍스트는 환경 섹션 앞의 파일 끝쪽에 있어야합니다. 편집기를 사용하여 스크립트 전후에 섹션을 제거하십시오.
상금 스크립트에서 사용하기 전에 다른 스크립트에서이 솔루션을 테스트하십시오. YMMV.
순서는 다음과 같습니다.
yba@tavas:~$ gdb -p 15113
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Attaching to process 15113
Reading symbols from /bin/bash...(no debugging symbols found)...done.
Reading symbols from /lib/x86_64-linux-gnu/libtinfo.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libtinfo.so.5
Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2
Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
0x00007feaf4b4c7be in waitpid () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) generate-core-file
Saved corefile core.15113
(gdb) detach
Detaching from program: /bin/bash, process 15113
(gdb) quit
yba@tavas:~$