ฉันมีคลัสเตอร์ที่มีความพร้อมใช้งานสูง (Heartbeat) เชื่อมต่อผ่านสายอนุกรมและอีเธอร์เน็ต NIC สองตัว ฉันต้องการตั้งค่าสคริปต์การตรวจสอบความสามารถในการรับรู้ถึงการเชื่อมต่อสายอนุกรม (โดยทั่วไปแล้วคำถามเดียวกันตอบที่ SOแต่ฉันไม่พอใจกับคำตอบทั่วไปดังกล่าว)
ฉันไม่สามารถเปิดอุปกรณ์อนุกรมและอ่านข้อมูลด้วยตัวเองได้เนื่องจาก Heartbeat เปิดบรรทัดอนุกรม
ดังนั้นฉันจึงเริ่มมองหาเบาะแสทางอ้อม /proc/tty/driver/serial
แตกต่างเพียงฉันได้พบเพื่อให้ห่างไกลอยู่ในเนื้อหาของ นี่คือลักษณะที่ปรากฏเมื่อเชื่อมต่อ:
# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:2722759 rx:2718165 brk:1 RTS|CTS|DTR|DSR|CD
และเมื่อตัดการเชื่อมต่อ:
# cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:2725233 rx:2720703 brk:1 RTS|DTR
ฉันไม่มั่นใจพอที่จะตัดสินใจได้ว่าสัญญาณที่แสดงในตอนท้ายของบรรทัดมีความหมายอย่างมากต่อสายเคเบิลที่ถูกเชื่อมต่อ / ตัดการเชื่อมต่อเนื่องจากฉันไม่พบเอกสารใด ๆ เกี่ยวกับเนื้อหาของ / proc / tty / driver / ซีเรียล ฉันสามารถสันนิษฐานได้ว่าการมีอยู่ของสัญญาณหมายความว่าสัญญาณที่ให้นั้นอยู่ที่ "ตอนนี้" (หรือเมื่อไม่นานมานี้? หรือ? HOWTO อนุกรมกล่าวว่าสัญญาณที่เพิ่มนำเสนอเมื่อสายเคเบิลเชื่อมต่อ (CTS สัญญาณควบคุมการไหล DSR "ผมพร้อมที่จะสื่อสาร" ซีดี "Modem เชื่อมต่อไปยังอีก") ที่มีอยู่ทั้งหมดใน "ป้อนข้อมูล" ทิศทาง ดังนั้นจะต้องมีใครบางคนที่มีชีวิตอยู่ที่ปลายอีกด้าน
สมมติว่าความหมายของสัญญาณเป็นไปตามที่อธิบายไว้ใน Serial HOWTO ฉันสามารถตัดสินใจโดยมีสัญญาณซีดีพูด อย่างไรก็ตามฉันไม่แน่ใจจริงๆ
ดังนั้นคำถามคือ: วิธีการของฉัน "ถูกต้อง" หรือฉันมีตัวเลือกที่ดีกว่าที่ฉันไม่ทราบหรือไม่?
แก้ไข: ฉันได้สังเกตเพิ่มเติมและได้คุยกับเพื่อนร่วมงานของฉัน ปรากฎว่ามีหรือไม่มีสัญญาณในตอนท้ายของบรรทัดเป็นตัวบ่งชี้ที่ดีของกิจกรรมพอร์ตอนุกรมทั้งสองด้าน อย่างไรก็ตามมันไม่ใช่ตัวบ่งชี้การมีอยู่จริงของสายเคเบิล เมื่อใดก็ตามที่มีการเขียนโปรแกรมไปยังสัญญาณขาออกพอร์ตอนุกรมจะมีอยู่ (RTS | DTR) เมื่ออีกด้านหนึ่งกำลังเขียนสัญญาณขาเข้ามีอยู่ (CTS | DSR | CD) เมื่อด้านใดด้านหนึ่งสื่อสารไม่มีสัญญาณเลย (นั่นไม่ได้แปลว่าไม่มีสายเคเบิลอยู่) อย่าลืมว่าสัญญาณที่แน่นอนขึ้นอยู่กับการเดินสายเคเบิล (ฉันมี "โมเด็มโมฆะพร้อมการจับมือบางส่วน")