पर बच्चों को समाप्त करें, मैं एक शेल स्क्रिप्ट लिखना चाहता हूं जो पृष्ठभूमि में कई लंबी चल रही प्रक्रियाओं को जन्म देती है, फिर आसपास लटकती है। SIGTERM प्राप्त करने पर, मैं चाहता हूं कि सभी उपप्रोसेस भी समाप्त हो जाएं।शैल स्क्रिप्ट को प्रक्रियाओं को बढ़ाने के लिए, SIGTERM
असल में, मुझे "मास्टर प्रोसेस" चाहिए।
यहाँ मैं अब तक क्या मिला है:
#!/bin/sh
sleep 600 &
PID1="$!"
sleep 600 &
PID2="$!"
# supposedly this should kill the child processes on SIGTERM.
trap "kill $PID1 $PID2" SIGTERM
wait
ऊपर स्क्रिप्ट trap: 10: SIGTERM: bad trap
साथ विफल रहता है।
संपादित करें: मैं Ubuntu 9.04
में बदलता हूं यदि आपको लगता है कि आपको सिग्नल नंबर का उपयोग करना है, तो आपको केवल मानकीकृत लोगों का उपयोग करना चाहिए। लेकिन मैं इसके बजाय आपके सिस्टम के सिग्नल नामों का उपयोग करने के लिए परेशान हूं। – TheBonsai
आप सही हैं। मुझे उम्मीद है कि यह आखिरी संस्करण है ... – itsadok
अच्छा, यह आपका कोड है, आप जितने चाहें उतने संस्करण प्राप्त कर सकते हैं ;-) – TheBonsai