Make procd manage socat-at-bridge completely

This commit is contained in:
Cameron Thompson
2025-08-04 23:14:30 -04:00
parent 2a6fc2cf2d
commit 45af7b6ee7
11 changed files with 75 additions and 97 deletions

View File

@@ -6,15 +6,42 @@ STOP=10
USE_PROCD=1
start_service() {
# Instance 1: create PTY pair
procd_open_instance
procd_set_param command /usr/sbin/socat-at-bridge.sh
procd_set_param respawn
procd_set_param command socat -d -d pty,link=/dev/ttySMD11IN,raw,echo=0,group=20,perm=660 \
pty,link=/dev/ttySMD11,raw,echo=1,group=20,perm=660
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 2: forward /dev/smd11 → /dev/ttySMD11IN
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD11IN ]; do sleep 0.1; done
exec cat /dev/smd11 > /dev/ttySMD11IN
'
procd_set_param file /dev/smd11
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 3: forward /dev/ttySMD11IN → /dev/smd11
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD11IN ]; do sleep 0.1; done
exec cat /dev/ttySMD11IN > /dev/smd11
'
procd_set_param file /dev/smd11
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
# procd will handle stopping all instances automatically
echo "Stopping socat and cat instances."
echo "Stopping socat bridge and cleaning up..."
rm -f /dev/ttySMD11 /dev/ttySMD11IN
}

View File

@@ -6,15 +6,42 @@ STOP=10
USE_PROCD=1
start_service() {
# Instance 1: create PTY pair
procd_open_instance
procd_set_param command /usr/sbin/socat-at-bridge-smd7.sh
procd_set_param respawn
procd_set_param command socat -d -d pty,link=/dev/ttySMD7IN,raw,echo=0,group=20,perm=660 \
pty,link=/dev/ttySMD7,raw,echo=1,group=20,perm=660
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 2: forward /dev/smd7 → /dev/ttySMD7IN
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD7IN ]; do sleep 0.1; done
exec cat /dev/smd7 > /dev/ttySMD7IN
'
procd_set_param file /dev/smd7
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
# Instance 3: forward /dev/ttySMD7IN → /dev/smd7
procd_open_instance
procd_set_param command /bin/sh -c '
while [ ! -e /dev/ttySMD7IN ]; do sleep 0.1; done
exec cat /dev/ttySMD7IN > /dev/smd7
'
procd_set_param file /dev/smd7
procd_set_param respawn 0 0 0
procd_set_param stdout 1
procd_set_param stderr 1
procd_close_instance
}
stop_service() {
# procd will handle stopping all instances automatically
echo "Stopping socat and cat instances."
echo "Stopping socat bridge and cleaning up..."
rm -f /dev/ttySMD7 /dev/ttySMD7IN
}