ฉันเคยexec 3<>/dev/tcp/192.168.0.101/6435สร้างการเชื่อมต่อ TCP กับ 192.168.0.101:6435 และฉันได้รับรวมทั้งส่งข้อความสองสามข้อความด้วยpipeคำคำสั่ง
ตอนนี้ฉันต้องการยกเลิกการเชื่อมต่อ TCP แต่ด้วยss -anpetฉันสามารถเห็นว่าทุบตีตัวเองถือการเชื่อมต่อนี้โดยไม่ต้องแยกกระบวนการเด็ก
ฉันพยายามส่งสัญญาณ 9 และ 15 ไปยังกระบวนการทุบตี แต่อย่างที่ทราบกันว่าทุบตีไม่สามารถฆ่าตัวตายได้
ดังนั้นฉันสามารถยุติการเชื่อมต่อ TCP ที่ฉันสร้างขึ้นได้โดยไม่ยกเลิก pts ที่ฉันกำลังใช้ (ไม่ฆ่าด้วย root หรือส่ง Ctrl + D)?
bashแน่นอนสามารถฆ่าตัวตาย - แม้ว่านั่นไม่ใช่สิ่งที่คุณต้องการทำที่นี่จริง ๆ !
@TJM เพื่อทำให้คำถามที่น่าสนใจนี้มีประโยชน์กับผู้อื่นมากขึ้นคุณช่วยอธิบายรายละเอียดเกี่ยวกับ
—
arielf
pipeคำสั่งที่คุณใช้และสิ่งที่ฉันไม่สามารถหาได้ในระบบของฉัน? แพ็คเกจใดpipeมาจากไหน คุณสามารถส่งพารามิเตอร์อะไร (ตัวอย่าง) เพื่อส่ง / รับข้อมูลผ่านการ/dev/tcp/...เชื่อมต่อ ขอบคุณ
@ arielf โดยทั่วไปแล้วฉันเป็นผู้เริ่มต้นของวิทยาการคอมพิวเตอร์และฉันพบว่าการใช้งานแบบนี้จากสคริปต์ bash shell ที่เรียกว่า sedbot คุณสามารถค้นหาได้จาก Github ใช่ฉันไม่พบไฟล์ใด ๆ
—
TJM
/dev/tcpแม้จะไม่สามารถค้นหา/dev/tcpไฟล์ได้ แต่ดูเหมือนว่าการใช้งานพิเศษที่คุณสามารถส่ง / รับข้อมูลด้วยpipeและไฟล์ประเภทนี้ มันบอกว่าใช้/dev/tcp/ip/portสำหรับการเชื่อมต่อ TCP และ/dev/udp/ip/portสำหรับแพคเกจ UDP สำหรับภาษาอังกฤษของฉันไม่ดีมากฉันไม่รู้วิธีอธิบายอย่างถูกต้อง โปรดแก้ไขคำถามและโพสต์คำตอบ
@TJM ขอบคุณ คำถามเกี่ยวกับ
—
arielf
pipeคำสั่งที่คุณพูดถึง https://github.com/clsr/sedbot/blob/master/sedbot.bashผมมองไปที่ ไม่มีpipeคำสั่งที่นั่น มันกำหนดสองฟังก์ชั่น: readmsgและsendmsgการอ่าน / เขียนจาก / ไปยังการเชื่อมต่อตามลำดับ readmsgใช้IFS= read -r -u 3 -t "$READ_TIMEOUT" lineในการอ่านจาก file-descriptor 3 ไปยังตัวแปรlineและsendmsgใช้echo "$(date +%s.%N) >>> $line" >&4เพื่อเขียนลงใน file descriptor 4 อย่างไรก็ตามนี่จะชี้แจงวิธีการแบบเต็ม การpipeกล่าวถึง "คำสั่ง" ยังคงเป็นปริศนาสำหรับผู้อ่าน
bashด้วยกระสุนนั้น