Files
op-packages/luci-app-cpe/root/etc/init.d/modem
T

108 lines
2.3 KiB
Bash
Executable File

#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2014 OpenWrt.org
START=16
STOP=16
USE_PROCD=1
#使用procd启动
# start启动服务
# stop停止服务
# restart重新启动服务
# reload重新加载配置文件(如果服务未实现重新加载,则重新启动)
# enable启用服务自动启动
# disable禁用服务自动启动
# enabled检查服务是否在启动时启动
# 正在运行检查服务是否正在运行
# status服务状态
# trace从系统调用跟踪开始
runModem()
{
local enabled
config_get_bool enabled $1 enabled
echo "run runModem" >> /tmp/log4g
if [ "$enabled" = "1" ]; then
local user
local password
local apn
local auth
local pincode
local device
local tool
local pdptype
config_get user $1 user
config_get password $1 password
config_get apn $1 apn
config_get auth $1 auth
config_get pincode $1 pincode
config_get device $1 device
config_get tool $1 tool
config_get pdptype $1 pdptype
config_get tty $1 tty
config_get atcmd $1 atcmd
if [ "$pdptype" = "IPV4V6" ]; then
pdptype='-4 -6'
elif [ "$pdptype" = "IPV6" ]; then
pdptype='-6'
else
pdptype=''
fi
devname="$(basename "$device")"
devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
ifname="$( ls "$devpath"/net )"
procd_open_instance
#创建一个实例, 在procd看来一个应用程序可以多个实\E4\BE?
#ubus call service list 可以查看实例
procd_set_param command $tool -i $ifname -s $apn $pdptype
if [ "$password" != "" ];then
procd_append_param command $user $password $auth
fi
if [ "$pincode" != "" ]; then
procd_append_param command -p $pincode
fi
# procd_append_param command -f /tmp/4g.log
procd_set_param respawn
echo "quectel-CM has started."
procd_close_instance
#关闭实例
fi
}
service_triggers()
{
procd_add_reload_trigger "modem"
}
start_service() {
config_load modem
config_foreach runModem ndis
}
stop_service()
{
echo "runModem stop" >> /tmp/log4g
killall quectel-CM
echo "quectel-CM has stoped."
}
reload_service() {
restart
}