45 lines
1.2 KiB
Bash
Executable File
45 lines
1.2 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
START=05
|
|
STOP=10
|
|
|
|
USE_PROCD=1
|
|
|
|
start_service() {
|
|
# Instance 1: create PTY pair
|
|
procd_open_instance
|
|
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 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 respawn 0 0 0
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|
|
|
|
stop_service() {
|
|
echo "Stopping socat bridge and cleaning up..."
|
|
rm -f /dev/ttySMD11 /dev/ttySMD11IN
|
|
}
|