मैंने exec 3<>/dev/tcp/192.168.0.101/6435192.168.0.101:6435 के साथ एक टीसीपी कनेक्शन स्थापित करने के लिए उपयोग किया है। और मुझे pipeकमांड के साथ कुछ संदेश भेजे गए हैं ।
अब, मैं टीसीपी कनेक्शन को समाप्त करना चाहता हूं। लेकिन, ss -anpetमैं इस बात को देख सकता हूं कि बच्चे की प्रक्रिया को समझे बिना, बैश खुद ही यह संबंध रखता है।
मैंने बैश प्रक्रिया के लिए सिग्नल 9 और 15 भेजने की कोशिश की, लेकिन जैसा कि आप जानते हैं, बैश खुद को मार नहीं सकता है।
तो, क्या मैं अपने द्वारा उपयोग किए जा रहे पीटीएस को समाप्त किए बिना टीसीपी कनेक्शन को समाप्त कर सकता हूं (न तो इसे रूट से मार रहा हूं और न ही Ctrl + सेंड कर रहा हूं)?
bashनिश्चित रूप से खुद को मार सकता है - हालांकि यह वास्तव में नहीं है कि आप यहां क्या करना चाहते हैं!
pipeकमांड पर विस्तार से बता सकते हैं जिसका आप उपयोग कर रहे हैं और जिसे मैं अपने सिस्टम में नहीं पा सकता हूं? किस पैकेज pipeसे आता है? /dev/tcp/...कनेक्शन पर डेटा भेजने / प्राप्त करने के लिए आप क्या (उदाहरण) पैरामीटर पास कर सकते हैं ? धन्यवाद।
/dev/tcp, यहां तक कि /dev/tcpखुद को भी नहीं खोज सकते । लेकिन, यह एक विशेष उपयोग लगता है जिसे आप pipeइस तरह की फाइलों के साथ डेटा भेज / प्राप्त कर सकते हैं । यह कहा जाता है कि /dev/tcp/ip/porttcp कनेक्शन के लिए, और /dev/udp/ip/portudp पैकेज के लिए उपयोग करें । मेरी अंग्रेजी बहुत अच्छी नहीं है, मुझे नहीं पता कि इसे कैसे ठीक से समझाऊं। कृपया प्रश्न को संपादित करने और उत्तर पोस्ट करने के लिए स्वतंत्र महसूस करें।
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उस शेल को मार सकते हैं ?