#!/bin/sh /etc/rc.common START=80 STOP=10 USE_PROCD=1 DIR=/sbin PROG=simman2 error(){ echo "${initscript}:" "$@" 1>&2 } xappend() { local filename="$1" local value="$2" echo "${value#--}" >> "$filename" } modem_power_off() { echo "simman2: power off $1 modem" > /dev/kmsg simman2_cli -x $1 } section_enabled(){ config_get_bool enabled "$1" 'enabled' 0 [ $enabled -gt 0 ] } start_service_daemon(){ local s="$1" section_enabled "$s" || return 1 config_get ATDEVICE "$s" atdevice config_get FIRSTSTART "$s" firststart if [[ "$FIRSTSTART" -eq "1" ]]; then /etc/simman2/modeminit $ATDEVICE & /etc/simman2/nbmodeminit & uci_set simman2 "$1" firststart "0" uci_commit simman2 fi procd_open_instance procd_set_param command $DIR/$PROG -c $s procd_set_param respawn ${respawn_threshold:-360} ${respawn_timeout:-5} ${respawn_retry:-0} procd_close_instance } start_service(){ mkdir -p /var/simman2/dev config_load 'simman2' config_foreach start_service_daemon 'simman2' } service_triggers() { procd_add_reload_trigger "simman2" } reload_service() { stop start } shutdown() { stop config_load 'simman2' config_foreach modem_power_off 'simman2' }