मैं नामित पाइप के साथ रूट प्रक्रिया में कुछ डेटा भेजना चाहता हूं। यहां स्क्रिप्ट है और यह बहुत अच्छा काम करता है:गैर-अवरुद्ध पढ़ने के साथ बैश स्क्रिप्ट
#!/bin/sh
pipe=/tmp/ntp
if [[ ! -p $pipe ]]; then
mknod -m 666 $pipe p
fi
while true
do
if read line <$pipe; then
/root/netman/extra/bin/ntpclient -s -h $line > $pipe 2>&1
fi
done
मेरे पास वास्तव में इस तरह की कई स्क्रिप्ट हैं। मैं उन सभी को एक ही लिपि में संलग्न करना चाहता हूं। समस्या यह है कि पहले "पढ़ने" पर निष्पादन ब्लॉक और मैं एक ही प्रक्रिया में एकाधिक "पढ़ता" निष्पादित नहीं कर सकता। क्या मैं कुछ भी नहीं कर सकता? क्या "गैर-अवरुद्ध" बैश पढ़ना संभव है?
आप अलग-अलग संचालन को एकल में क्यों जोड़ना चाहते हैं स्क्रिप्ट? यदि वे प्रत्येक सही ढंग से स्टैंडअलोन काम करते हैं, तो उन्हें स्टैंडअलोन छोड़ दें। गैर-अवरुद्ध पढ़ने में खोल को झुकाव करने की कोशिश करने से कहीं अधिक आसान है। प्रक्रियाएं सस्ते हैं। सरल प्रक्रिया जटिल लोगों की तुलना में अधिक सुरक्षित होती है, और रूट प्रक्रियाओं को सुरक्षित होने की आवश्यकता होती है। –
मैं आपसे सहमत हूं, लेकिन प्रत्येक प्रक्रिया 628 के रैम खाती है (यह बैश की एक प्रति है) और मैं एक एम्बेडेड वातावरण में हूं। मैं जितना संभव हो उतना स्मृति बचाने के लिए पसंद करेंगे। – michelemarcon
यदि यह एक समस्या है, तो सी –