Armadilloフォーラム

Socatの動作状況について

e4e_sugiura

2024年10月23日 15時03分

G3のM1-Mモデルにてrc.localでsocatを動作させていますが
あるタイミングでsocatが落ちてしまい、以降armadilloをリブートするまで
socatが動作しなくなっているような挙動が見受けられます。(確証はありません)

まずはsocatが起動しているのか確認したいのですが
ログ等で確認可能でしょうか。

rc.localでの記述は下記のようにしております。
socat -d -d tcp-l:485,reuseaddr,fork /dev/ttymxc1,raw,b9600,nonblock,waitlock=/var/run/ttymxc1.lock &> /dev/null

コメント

at_dominique.m…

2024年10月23日 15時34分

e4e_sugiuraさん

お世話になっています、
マルティネです。

> まずはsocatが起動しているのか確認したいのですが
> ログ等で確認可能でしょうか。

教えていただいたコマンドでログが残りませんので確認不可能ですね。
(segfault や out of memory 等で停止した場合はカーネルのログにメッセージがあるかもしれませんが、停止原因によってログがない可能性がありますので、ログを当てにできません)

- 別の方法で接続してコマンドを実行できる場合は ps/pgrep で確認できますが、質問の意図としてはできないですね。
- 手っ取り早い変更として、rc.local で socat を実行した後に logger 等でログを残せば停止かどうかの確認をとれるか、while true; do socat ....; done の形でループに実行すればひとまずその心配がなくなります
- ずっと実行する想定でしたら rc.local ではなく別のサービスに入れておけば systemd が管理してくれますので、ログも自動的に対応されますし、自動リスタートが必要になった場合も Restart=always などで簡単に対応できます。
(参考資料はいくらでもありますが、例えば https://qiita.com/DQNEO/items/0b5d0bc5d3cf407cb7ff )

よろしくお願いします