Suponiendo que el OP realmente significaba RAM y no de ninguna manera posible , y suponiendo que el proceso en el que se ejecutó el script tiene un límite de archivo de núcleo cero (que generalmente es la configuración predeterminada cat /proc/PID/limits
), entonces debe adjuntarlo al proceso y establezca el límite central en un valor lo suficientemente grande como para incluir la imagen del proceso y use la señal ABRT para generar el archivo central, o use una herramienta como gdb
esa que pueda adjuntarse a un proceso y generar una imagen central del proceso desde la RAM.
- Instalar en pc
gdb
En algunos shell con la misma propiedad que el script en ejecución o la propiedad de root:
- Hacer
ps ax
para encontrar la identificación del proceso (PID)
gdb -p PID
Tenga en cuenta que esto detendrá la ejecución del proceso, pero no lo eliminará de la tabla de procesos.
- En gdb, emita el comando
generate-core-file
gdb debería responder con algo como Saved corefile core.15113
, suponiendo que PID es 15113.
- En gdb, emita el comando
detach
Su script continuará (se reanudará) ejecutándose.
- En gdb, emita el comando
quit
- En shell, corre
strings core.15113 > my_script.sh
Abra el my_script.sh
en algún editor. El texto del script debe estar hacia el final del archivo antes de la sección de entorno. Use el editor para eliminar las secciones antes y después del guión.
Pruebe esta solución en otro script antes de usarlo en su script de premio. YMMV.
La secuencia se ve así:
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:~$