#!/bin/sh /etc/rc.common
# luci-app-cellular 服务脚本(procd): 启动守护进程与 AT 请求队列。

START=95
STOP=10
USE_PROCD=1

PROG=/usr/sbin/cellulard
ATQ=/usr/sbin/cellular-atq

start_service() {
	local enabled
	enabled=$(uci -q get cellular.global.enabled)
	mkdir -p /var/run/cellular
	rm -rf /var/lock/cell*.lock.d 2>/dev/null
	rm -f /var/run/cellular/atdirty* /var/run/cellular/at_busy 2>/dev/null
	rm -f /var/run/cellular/portinit* /var/run/cellular/watch 2>/dev/null
	rm -f /var/run/cellular/smsinit* /var/run/cellular/sms_now 2>/dev/null
	rm -f /var/run/cellular/bandfix_* 2>/dev/null
	mkdir -p /etc/cellular/sms 2>/dev/null
	rm -rf /var/run/cellular/lk_*.d 2>/dev/null
	rm -rf /var/run/cellular/lat 2>/dev/null
	rm -rf /var/run/cellular/atq 2>/dev/null

	procd_open_instance cellular_atq
	procd_set_param command "$ATQ"
	procd_set_param respawn 3600 5 0
	procd_set_param stdout 0
	procd_set_param stderr 1
	procd_set_param pidfile /var/run/cellular-atq.pid
	procd_close_instance

	[ "$enabled" = "0" ] && return 0

	procd_open_instance cellular
	procd_set_param command "$PROG"
	procd_set_param respawn 3600 5 0
	procd_set_param stdout 0
	procd_set_param stderr 1
	procd_set_param pidfile /var/run/cellulard.pid
	procd_close_instance
}

stop_service() {
	rm -f /var/run/cellular/info_*.json 2>/dev/null
	rm -rf /var/run/cellular/atq/worker.*.d 2>/dev/null
	rm -f /var/run/cellular/atq/hb.* /var/run/cellular/atq/sup 2>/dev/null
}

service_triggers() {
	procd_add_reload_trigger "cellular"
}

reload_service() {
	stop
	start
}
