यह मानते हुए कि ओपी वास्तव में रैम से तात्पर्य है और किसी भी तरह से संभव नहीं है , और यह मानते हुए कि जिस प्रक्रिया में स्क्रिप्ट निष्पादित की गई थी, उसमें शून्य कोर फ़ाइल सीमा है (जो आमतौर पर डिफ़ॉल्ट सेटिंग है cat /proc/PID/limits
), तो आपको प्रक्रिया को संलग्न करने की आवश्यकता है और या तो मुख्य छवि को प्रोसेस छवि में शामिल करने और ABRT सिग्नल का उपयोग कोर फाइल बनाने के लिए एक बड़े पर्याप्त मान पर सेट करें, या एक टूल का उपयोग करें जैसे gdb
कि एक प्रक्रिया से जुड़ सकते हैं और रैम से प्रक्रिया की एक कोर छवि उत्पन्न कर सकते हैं।
- इंस्टॉल
gdb
चल रहे स्क्रिप्ट या रूट स्वामित्व के समान स्वामित्व वाले कुछ शेल में:
ps ax
प्रक्रिया आईडी (पीआईडी) खोजने के लिए करें
gdb -p PID
ध्यान दें कि यह प्रक्रिया के निष्पादन को जारी रखने से रोक देगा लेकिन इसे प्रक्रिया तालिका से नहीं हटाएगा।
- जीडीबी में, कमांड जारी करें
generate-core-file
gdb को कुछ इस तरह Saved corefile core.15113
से रिपीट करना चाहिए , यह मानते हुए कि PID 15113 है।
- जीडीबी में, कमांड जारी करें
detach
आपकी स्क्रिप्ट जारी रहेगी (फिर से शुरू)।
- जीडीबी में, कमांड जारी करें
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:~$