Tôi có một cụm khả dụng cao (Heartbeat) được kết nối thông qua đường nối tiếp và hai NIC ethernet. Tôi muốn thiết lập một tập lệnh giám sát có khả năng nhận ra dòng nối tiếp bị ngắt kết nối (về cơ bản câu hỏi tương tự đã được trả lời tại SO , tuy nhiên tôi không hài lòng với câu trả lời chung như vậy).
Tôi không thể đơn giản mở thiết bị nối tiếp và tự đọc dữ liệu, vì dòng nối tiếp được mở bởi Heartbeat.
Vì vậy, tôi bắt đầu tìm kiếm một số manh mối gián tiếp. Sự khác biệt duy nhất tôi tìm thấy cho đến nay là trong nội dung của /proc/tty/driver/serial
. Đây là giao diện của nó khi được kết nối:
# 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
Và khi bị ngắt kết nối:
# 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
Tôi không đủ tự tin để quyết định rằng các tín hiệu được liệt kê ở cuối dòng có ý nghĩa của cáp được kết nối / ngắt kết nối vì tôi không tìm thấy bất kỳ tài liệu nào về nội dung của / Proc / tty / driver / serial. Tôi chỉ có thể giả sử rằng sự hiện diện của tín hiệu có nghĩa là tín hiệu đã cho là "ngay bây giờ" (hoặc là trong quá khứ gần đây? Hoặc?). Các HOWTO nối tiếp nói rằng tín hiệu bổ sung trình bày khi cáp được kết nối (CTS tín hiệu điều khiển dòng chảy, DSR "Tôi đã sẵn sàng để giao tiếp", CD "Modem kết nối với nhau") là tất cả trong "đầu vào" hướng. Vì vậy, phải có ai đó còn sống ở đầu kia.
Giả sử rằng ý nghĩa của các tín hiệu được mô tả trong Nối tiếp HOWTO, tôi có thể dựa vào quyết định của mình về sự hiện diện của tín hiệu CD. Tuy nhiên tôi không thực sự chắc chắn.
Vì vậy, câu hỏi là: phương pháp của tôi là "đúng" hay tôi có bất kỳ lựa chọn nào tốt hơn mà tôi không biết?
EDIT: Tôi đã thực hiện một số quan sát bổ sung và nói chuyện với đồng nghiệp của tôi. Hóa ra sự hiện diện hay vắng mặt của các tín hiệu ở cuối dòng là chỉ báo khá tốt về hoạt động của cổng nối tiếp, ở cả hai đầu. Tuy nhiên, nó không phải là một chỉ số về sự hiện diện vật lý của cáp. Bất cứ khi nào có một chương trình ghi vào tín hiệu ra cổng nối tiếp đều có mặt (RTS | DTR). Khi phía bên kia đang viết tín hiệu đến (CTS | DSR | CD). Khi không có bên nào giao tiếp, không có tín hiệu nào cả (điều đó không nhất thiết có nghĩa là không có cáp). Đừng quên rằng các tín hiệu chính xác phụ thuộc vào hệ thống dây cáp (Tôi có "modem null với bắt tay một phần").