मेरे पास बैश अभिभावक स्क्रिप्ट है कि अप्रत्याशित इनपुट पर त्रुटि को लॉग करने वाली बाल स्क्रिप्ट लॉगिंग में त्रुटि होती है। मैं भी त्रुटि उत्पन्न होने पर निष्पादन रोकना चाहता हूं और त्रुटि स्क्रिप्ट को बुलाया जाता है। लेकिन अगर मैं त्रुटि प्रबंधन स्क्रिप्ट से exit
पर कॉल करता हूं तो यह पैरेंट स्क्रिप्ट निष्पादित करने से नहीं रोकता है। मैं बच्चे से अभिभावक स्क्रिप्ट को रोकने के बारे में कैसे जा सकता हूं?बैश - बाल स्क्रिप्ट से पैरेंट स्क्रिप्ट से बाहर निकलें
10
A
उत्तर
10
कोशिश ..
#normal flow
[[ $(check_error_condition ]] && /some/error_reporter.sh || exit 1
तो
,
- जब error_reporter बाहर निकलने की स्थिति के साथ बाहर निकल जाएगा> 0 माता-पिता भी समाप्त कर देगा
- अगर error_reporter स्थिति के साथ बाहर निकल जाएगा = 0 जनक जारी है ...
आप stop the parent from a child
(माता-पिता आमतौर पर इस व्यवहार पसंद नहीं है) :) नहीं करना चाहती, आप के बजाय tell to parent - need stop
चाहते हैं और वह खुद बंद हो जाएगा (यदि चाहते हैं);)
0
बच्चे से माता-पिता को समाप्त करने का प्रयास न करें। बच्चे स्क्रिप्ट लौटने के बाद माता-पिता में exit
पर कॉल करें।
if [ condition ]; then
/path/to/child.sh
exit 1
fi
या कम
[ condition ] && { /path/to/child.sh; exit 1; }
6
प्रयास करें:
माता पिता स्क्रिप्ट में:
trap "echo exitting because my child killed me.>&2;exit" SIGUSR1
में बच्चे रों cript:
kill -SIGUSR1 `ps --pid $$ -oppid=`; exit
अन्य रास्ता नहीं था:
बच्चे स्क्रिप्ट में:
kill -9 `ps --pid $$ -oppid=`; exit
लेकिन, यह अनुशंसित नहीं है, क्योंकि माता-पिता की मौत हो रही & बारे में कुछ जानकारी की जरूरत है इस प्रकार यदि आवश्यक हो तो कुछ सफाई करें।
एक और तरीका है
: इसके बजाय बच्चे स्क्रिप्ट, exec
यह बुलाने की।
लेकिन, जैसा कि अन्य जवाब में बताया, स्पष्ट तरीका, माता पिता से बाहर निकलने के लिए बच्चे को रिटर्न के बाद है।
संबंधित मुद्दे
- 1. एक सोर्सड बैश स्क्रिप्ट के फ़ंक्शन से बाहर कैसे निकलें
- 2. पावरशेल फ़ंक्शन से बाहर निकलें लेकिन स्क्रिप्ट
- 3. कैस्परजेएस: स्क्रिप्ट निष्पादन से कैसे बाहर निकलें?
- 4. बैश स्क्रिप्ट से पाइथन स्क्रिप्ट
- 5. पाइथन स्क्रिप्ट से बैश स्क्रिप्ट
- 6. बैश स्क्रिप्ट
- 7. फ़ंक्शन के अंदर से बाहर निकलें बैच स्क्रिप्ट
- 8. एक "जाल से बाहर निकलें"
- 9. बैश स्क्रिप्ट - डेटाबेस से परिवर्तनीय
- 10. बैश स्क्रिप्ट से आउटपुट JSON
- 11. बैश से पहले स्क्रिप्ट चलाएं
- 12. बैश स्क्रिप्ट से बाहर एसएस सुरंग बाल प्रक्रिया को कैसे समाप्त करें
- 13. बैश स्क्रिप्ट से पहले कमांड कैसे चलाएं?
- 14. बाहर निकलें
- 15. बैश-स्क्रिप्ट
- 16. बैश स्क्रिप्ट
- 17. बैश स्क्रिप्ट
- 18. बैश स्क्रिप्ट
- 19. बैश स्क्रिप्ट
- 20. बैश स्क्रिप्ट
- 21. बैश स्क्रिप्ट
- 22. बैश स्क्रिप्ट
- 23. बैश स्क्रिप्ट
- 24. बैश स्क्रिप्ट
- 25. बैश स्क्रिप्ट
- 26. बैश स्क्रिप्ट
- 27. बैश स्क्रिप्ट
- 28. बैश स्क्रिप्ट
- 29. बैश स्क्रिप्ट
- 30. बैश स्क्रिप्ट
यह यहां डरावनी दिखने जैसा दिखता है - बच्चा माता-पिता को मारता है ... :) :) (लेकिन हाँ, यह एक समाधान भी है) :) :) – jm666
^^ युप्स .... मुझे एक बार आवश्यकता थी इस तरह: 'कमांड 1 | (कमांड 2; कमांड 3) 'और कमांड 3 को SIGINT के साथ कमांड 1 मारना था :-) – anishsane