직렬 회선과 2 개의 이더넷 NIC를 통해 연결된 고 가용성 클러스터 (하트 비트)가 있습니다. 내가 분리 시리얼 라인을 인식 할 수있는 모니터링 스크립트를 설정하고 싶습니다 (기본적으로 같은 질문을했다 SO에 대답 그러나 나는 이러한 일반적인 대답에 만족하고 있지 않다).
직렬 회선이 하트 비트에 의해 열리므로 직렬 장치를 열고 데이터를 직접 읽을 수 없습니다.
그래서 나는 간접적 인 단서를 찾기 시작했습니다. 내가 지금까지 찾은 유일한 차이점은의 내용입니다 /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 / serial의 내용에 대한 문서를 찾지 못했기 때문에 라인 끝에 나열된 신호가 연결 / 연결 끊김 케이블의 의미를 갖는 것으로 결정할만큼 확신이 없습니다. 신호의 존재는 주어진 신호가 "지금"(또는 최근에 있었습니까? 또는?)에 있음을 의미한다고 가정 할 수 있습니다. 직렬 HOWTO는 케이블 (CTS 유량 제어 신호, DSR, CD "모뎀은 서로 접속", "I가 통신 할 준비")에 접속 될 때 추가적인 신호들이 "입력"방향에있는 제시 말한다. 따라서 다른 쪽 끝에 누군가 살아 있어야합니다.
신호의 의미가 Serial HOWTO에 설명되어 있다고 가정하면 CD 신호의 존재 여부에 따라 결정을 내릴 수 있습니다. 그러나 나는 확실하지 않다.
그래서 질문은 : 내 방법이 "올바르다"또는 내가 알지 못하는 더 나은 옵션이 있습니까?
편집 : 추가 관찰을하고 동료와 이야기했습니다. 라인의 끝에서 신호의 존재 유무는 직렬 포트 작동의 양을 나타내는 아주 좋은 지표입니다. 그러나 케이블의 물리적 존재를 나타내는 것은 아닙니다. 직렬 포트 출력 신호에 쓰는 프로그램이있을 때마다 (RTS | DTR). 다른 쪽이 글을 쓸 때 들어오는 신호가있었습니다 (CTS | DSR | CD). 어느 쪽도 통신하지 않는 경우 신호가 전혀 없습니다 (케이블이 없음을 의미하지는 않습니다). 정확한 신호 는 케이블 의 배선에 달려 있다는 것을 잊지 마십시오 ( "부분 핸드 쉐이킹 기능이있는 널 모뎀이 있습니다").