Saya memiliki cluster ketersediaan tinggi (Detak Jantung) yang terhubung melalui jalur serial dan dua NIC ethernet. Saya ingin membuat skrip pemantauan yang mampu mengenali garis serial terputus (pada dasarnya pertanyaan yang sama dijawab di SO , namun saya tidak puas dengan jawaban umum seperti itu).
Saya tidak bisa begitu saja membuka perangkat serial dan membaca data sendiri, karena garis serial dibuka oleh Detak Jantung.
Jadi saya mulai mencari beberapa petunjuk tidak langsung. Satu-satunya perbedaan yang saya temukan sejauh ini adalah isi /proc/tty/driver/serial
. Ini terlihat seperti ketika terhubung:
# 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
Dan ketika terputus:
# 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
Saya tidak cukup percaya diri untuk memutuskan bahwa sinyal yang tertera di akhir baris memiliki arti kabel yang terhubung / terputus karena saya belum menemukan dokumentasi tentang isi dari serial / proc / tty / driver / serial. Saya hanya dapat berasumsi bahwa kehadiran sinyal berarti sinyal yang diberikan pada "sekarang" (atau di masa lalu? Atau?). The HOWTO Serial mengatakan bahwa sinyal tambahan hadir ketika kabel tersambung (sinyal kontrol aliran CTS, DSR "Saya siap berkomunikasi", CD "Modem terhubung ke yang lain") semuanya dalam arah "input". Jadi pasti ada seseorang yang hidup di ujung sana.
Dengan asumsi bahwa makna sinyal seperti yang dijelaskan dalam Serial HOWTO, saya dapat mendasarkan keputusan saya pada keberadaan, katakanlah sinyal CD. Namun saya tidak begitu yakin.
Jadi pertanyaannya adalah: apakah metode saya "benar", atau apakah saya memiliki opsi yang lebih baik yang tidak saya sadari?
EDIT: Saya melakukan beberapa pengamatan tambahan dan berbicara dengan rekan saya. Ternyata ada atau tidak adanya sinyal di ujung saluran merupakan indikator yang cukup baik dari aktivitas port serial, di kedua ujungnya. Namun, itu bukan indikator keberadaan fisik kabel. Setiap kali ada program menulis ke port keluar sinyal keluar hadir (RTS | DTR). Ketika pihak lain sedang menulis sinyal masuk hadir (CTS | DSR | CD). Ketika tidak ada sisi yang berkomunikasi tidak ada sinyal sama sekali (itu tidak selalu berarti tidak ada kabel). Jangan lupa bahwa sinyal yang tepat tergantung pada kabel kabel (saya punya "null modem with handshaking parsial").