मैं एक बैश स्क्रिप्ट से एक प्रक्रिया को अलग करने की कोशिश कर रहा हूं ताकि स्क्रिप्ट से बाहर निकलने पर SIGINT को प्रक्रिया में आगे नहीं भेजा जाएगा।
मैंने disown
सीधे टर्मिनल में कमांड का उपयोग किया है , हालाँकि, बाश में, disown
SIGINT को आगे भेजे जाने से नहीं रोकता है। इस स्क्रिप्ट का उद्देश्य एक एकल आह्वान के साथ ओपनकाड और फिर जीडीबी शुरू करना है। चूंकि स्क्रिप्ट कभी भी बाहर नहीं निकलती है (यह gdb चल रही है) SIGINT को अभी भी gdb से ओपनकाड के लिए भेजा जाता है जो एक समस्या है क्योंकि SIGINT को gdb में हाल्ट कमांड के रूप में उपयोग किया जाता है।
टर्मिनल में यह कुछ इस तरह दिखेगा:
$ openocd & # run openocd demonized
$ disown $! # disown last pid
$ gdb # invoke GDB
जब इस क्रम में टर्मिनल पर आमंत्रित किया जाता है, तो SIGINT को gdb से ओपनोकैड में पारित नहीं किया जाता है। हालाँकि यदि यह एक ही आह्वान बैश स्क्रिप्ट में था, SIGINT पास है।
किसी भी तरह की सहायता का स्वागत किया जाएगा।
ps यह समस्या OS X में है, लेकिन मैं उन टूल्स का उपयोग करने की कोशिश कर रहा हूं जो सभी यूनिक्स टूल्स के लिए पोर्टेबल हैं।
screen
?
nohup
काफी सही जवाब नहीं है। आपको अधिक सटीक दिखाने के लिए आपको कुछ छद्मकोड या उदाहरण कोड जोड़ना चाहिए जो आप चाहते हैं।