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/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 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 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/ttySMD7 /dev/ttySMD7IN
|
|
}
|