मैंने exec 3<>/dev/tcp/192.168.0.101/6435
192.168.0.101:6435 के साथ एक टीसीपी कनेक्शन स्थापित करने के लिए उपयोग किया है। और मुझे pipe
कमांड के साथ कुछ संदेश भेजे गए हैं ।
अब, मैं टीसीपी कनेक्शन को समाप्त करना चाहता हूं। लेकिन, ss -anpet
मैं इस बात को देख सकता हूं कि बच्चे की प्रक्रिया को समझे बिना, बैश खुद ही यह संबंध रखता है।
मैंने बैश प्रक्रिया के लिए सिग्नल 9 और 15 भेजने की कोशिश की, लेकिन जैसा कि आप जानते हैं, बैश खुद को मार नहीं सकता है।
तो, क्या मैं अपने द्वारा उपयोग किए जा रहे पीटीएस को समाप्त किए बिना टीसीपी कनेक्शन को समाप्त कर सकता हूं (न तो इसे रूट से मार रहा हूं और न ही Ctrl + सेंड कर रहा हूं)?
bash
निश्चित रूप से खुद को मार सकता है - हालांकि यह वास्तव में नहीं है कि आप यहां क्या करना चाहते हैं!
pipe
कमांड पर विस्तार से बता सकते हैं जिसका आप उपयोग कर रहे हैं और जिसे मैं अपने सिस्टम में नहीं पा सकता हूं? किस पैकेज pipe
से आता है? /dev/tcp/...
कनेक्शन पर डेटा भेजने / प्राप्त करने के लिए आप क्या (उदाहरण) पैरामीटर पास कर सकते हैं ? धन्यवाद।
/dev/tcp
, यहां तक कि /dev/tcp
खुद को भी नहीं खोज सकते । लेकिन, यह एक विशेष उपयोग लगता है जिसे आप pipe
इस तरह की फाइलों के साथ डेटा भेज / प्राप्त कर सकते हैं । यह कहा जाता है कि /dev/tcp/ip/port
tcp कनेक्शन के लिए, और /dev/udp/ip/port
udp पैकेज के लिए उपयोग करें । मेरी अंग्रेजी बहुत अच्छी नहीं है, मुझे नहीं पता कि इसे कैसे ठीक से समझाऊं। कृपया प्रश्न को संपादित करने और उत्तर पोस्ट करने के लिए स्वतंत्र महसूस करें।
pipe
कमांड के बारे में था जिसका आप उल्लेख करते हैं। मैंने देखा https://github.com/clsr/sedbot/blob/master/sedbot.bash
। वहां कोई pipe
आज्ञा नहीं है। यह दो कार्यों को परिभाषित करता है: readmsg
और sendmsg
क्रमशः कनेक्शन के लिए / से पढ़ना / लिखना। चर में फ़ाइल-डिस्क्रिप्टर 3 से पढ़ने के लिए readmsg
उपयोग करता IFS= read -r -u 3 -t "$READ_TIMEOUT" line
है line
, और फ़ाइल डिस्क्रिप्टर 4 में लिखने के लिए sendmsg
उपयोग करता echo "$(date +%s.%N) >>> $line" >&4
है। वैसे भी, यह पूरी विधि को स्पष्ट करता है। " pipe
कमांड" का उल्लेख अभी भी पाठकों के लिए एक रहस्य है।
bash
उस शेल को मार सकते हैं ?