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 )
よろしくお願いします