mirror of
https://dev.iopsys.eu/feed/iopsys.git
synced 2026-02-13 11:30:05 +01:00
The service must be started but without any instance in case it is disabled via uci. If it is stopped entirely, the reload trigger does not work and it is impossible to re-enable mapcontroller via uci without explicit reload.
63 lines
1.1 KiB
Bash
Executable file
63 lines
1.1 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
|
|
START=98
|
|
STOP=20
|
|
|
|
USE_PROCD=1
|
|
|
|
handle_controller_select() {
|
|
local section="$1"
|
|
|
|
config_get_bool local_ctrl "$section" local 0
|
|
return 1
|
|
}
|
|
|
|
start_service() {
|
|
local enabled
|
|
|
|
config_load "mapcontroller"
|
|
config_get_bool enabled controller enabled 1
|
|
[ "$enabled" -eq 0 ] && return
|
|
|
|
procd_open_instance
|
|
procd_set_param command "/usr/sbin/mapcontroller" "-d"
|
|
|
|
if [ -f /etc/config/mapagent ]; then
|
|
local local_ctrl=0
|
|
|
|
config_load "mapagent"
|
|
config_foreach handle_controller_select controller_select
|
|
[ "$local_ctrl" -eq 0 ] && procd_append_param command "-w"
|
|
fi
|
|
|
|
procd_set_param respawn
|
|
# procd_set_param stdout 1
|
|
# procd_set_param stderr 1
|
|
procd_close_instance
|
|
}
|
|
|
|
service_triggers()
|
|
{
|
|
procd_add_reload_trigger "mapcontroller"
|
|
}
|
|
|
|
reload_service() {
|
|
local enabled
|
|
|
|
config_load "mapcontroller"
|
|
config_get_bool enabled controller enabled 1
|
|
if [ "$enabled" -eq 0 ]; then
|
|
stop
|
|
# Start but without instance so reload trigger works.
|
|
start
|
|
return
|
|
fi
|
|
|
|
pidof "mapcontroller" > /dev/null
|
|
if [[ $? -ne 0 ]] ; then
|
|
start
|
|
return
|
|
fi
|
|
|
|
procd_send_signal "mapcontroller"
|
|
}
|