From e57d5962d1c0167d5c81cd8526f928b431793c40 Mon Sep 17 00:00:00 2001 From: Yalu Zhang Date: Tue, 5 Jan 2021 11:14:41 +0100 Subject: [PATCH] Add etc/init.d/dect --- dectmngr/files/etc/init.d/dect | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100755 dectmngr/files/etc/init.d/dect diff --git a/dectmngr/files/etc/init.d/dect b/dectmngr/files/etc/init.d/dect new file mode 100755 index 000000000..7db88d625 --- /dev/null +++ b/dectmngr/files/etc/init.d/dect @@ -0,0 +1,60 @@ +#!/bin/sh /etc/rc.common +# +# Copyright (C) 2021 OpenWrt.org +# + +source /lib/functions/uci-defaults.sh + +START=70 +STOP=12 + +USE_PROCD=1 +NAME=dectmngr +PROG=/usr/sbin/dectmngr + +# Ask dectmngr to exit nicely and wait for it to clean up, which is a slow process. +stop_and_wait_dectmngr() { + pidof $NAME || return + + killall -q $NAME || return + while pidof $NAME >/dev/null; do + sleep 1; + done +} + +start_service() { + test $(db get hw.board.hasDect) = "0" && return + + echo 1 > /sys/class/gpio/gpio14/value + + procd_open_instance + procd_set_param command $PROG -comname ttyH0 + procd_set_param respawn 6 2 3 + procd_set_param term_timeout 20 + procd_set_param triggers asterisk + procd_close_instance +} + +stop_service() { + test $(db get hw.board.hasDect) = "0" && return + + echo 0 > /sys/class/gpio/gpio14/value + stop_and_wait_dectmngr +} + +reload_service() { + stop_and_wait_dectmngr + start +} + +service_triggers() +{ + procd_add_reload_trigger asterisk +} + +boot() { + echo 14 > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio14/direction + start +} +