Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
43 lines
1.6 KiB
Bash
43 lines
1.6 KiB
Bash
#!/bin/sh
|
|
# Garde du releve des cellules sur le Synology .17 (ARCHIVE3). A LANCER EN ROOT,
|
|
# toutes les 5 minutes (timer systemd evcs-releve-port.timer, voir README).
|
|
#
|
|
# Pourquoi (25/09/2026) : debrancher puis rebrancher le cable FTDI recree
|
|
# /dev/ttyUSB0 en crw------- root. Le conteneur, qui tourne en uid 1026, ne
|
|
# peut plus l'ouvrir : il meurt (« EIO: i/o error ») et ne repart pas seul.
|
|
# charger-pilotes.sh ne tourne qu'au demarrage du NAS, donc sans cette garde
|
|
# chaque debranchement coupait le releve jusqu'a une intervention manuelle.
|
|
#
|
|
# Ce script ne fait RIEN quand tout va bien, et n'ecrit une ligne dans le
|
|
# journal systeme (tag evcs-releve) que lorsqu'il agit. Idempotent.
|
|
|
|
PORT=/dev/ttyUSB0
|
|
CONTENEUR=evcs-releve-cellules
|
|
DOCKER=/usr/local/bin/docker
|
|
DIR=$(dirname "$0")
|
|
dire() { logger -t evcs-releve "$*"; echo "$*"; }
|
|
|
|
# Pilotes decharges (ne devrait arriver qu'apres une MAJ DSM) : on les recharge.
|
|
if ! /sbin/lsmod | grep -q "^ftdi_sio "; then
|
|
dire "ftdi_sio absent : rechargement des pilotes"
|
|
/bin/sh "$DIR/charger-pilotes.sh" >/dev/null 2>&1
|
|
fi
|
|
|
|
# Cable debranche : rien a faire, le conteneur ne peut de toute facon pas
|
|
# demarrer sans son device. On attend le rebranchement.
|
|
[ -e "$PORT" ] || exit 0
|
|
|
|
# Droits perdus au rebranchement : on les rouvre.
|
|
if [ "$(stat -c %a "$PORT")" != "666" ]; then
|
|
chmod 666 "$PORT"
|
|
dire "droits de $PORT rouverts (cable rebranche ?)"
|
|
fi
|
|
|
|
# Conteneur arrete : on le relance.
|
|
etat=$("$DOCKER" inspect -f '{{.State.Running}}' "$CONTENEUR" 2>/dev/null)
|
|
if [ "$etat" != "true" ]; then
|
|
"$DOCKER" start "$CONTENEUR" >/dev/null 2>&1 \
|
|
&& dire "$CONTENEUR relance" \
|
|
|| dire "$CONTENEUR : echec de la relance"
|
|
fi
|