diff options
| author | Felix Fietkau <nbd@nbd.name> | 2023-11-12 21:28:34 +0100 |
|---|---|---|
| committer | Felix Fietkau <nbd@nbd.name> | 2023-11-20 11:58:47 +0100 |
| commit | bc6ee34c97cb669c224b784d556c52bc0a393264 (patch) | |
| tree | ca38fe75e7bff8e6e8b41d9ff496a9eb1fde20e4 /package/libs/udebug/files/udebug.init | |
| parent | c4fe1bfc65bc6de1de2de0a9d009cb81e51a7e33 (diff) | |
| download | upstream-bc6ee34c97cb669c224b784d556c52bc0a393264.tar.gz upstream-bc6ee34c97cb669c224b784d556c52bc0a393264.tar.bz2 upstream-bc6ee34c97cb669c224b784d556c52bc0a393264.zip | |
udebug: add new package
This will help with debugging by providing system wide access to per-process
ring buffers with debug data.
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package/libs/udebug/files/udebug.init')
| -rwxr-xr-x | package/libs/udebug/files/udebug.init | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/package/libs/udebug/files/udebug.init b/package/libs/udebug/files/udebug.init new file mode 100755 index 00000000000..b57e962f6fa --- /dev/null +++ b/package/libs/udebug/files/udebug.init @@ -0,0 +1,55 @@ +#!/bin/sh /etc/rc.common +# Copyright (c) 2021 OpenWrt.org + +START=11 + +USE_PROCD=1 +PROG=/usr/sbin/udebugd + +start_service() { + procd_open_instance + procd_set_param command "$PROG" + procd_set_param respawn + procd_close_instance +} + +get_vars() { + local cfg="$1" + uci show "udebug.$cfg" | while read LINE; do + cur="${LINE##udebug.$1.}" + [[ "$cur" = "$LINE" ]] && continue + var="${cur%%=*}" + [[ "$cur" = "$var" ]] && continue + echo "$var" + done +} + +add_debug_service() { + local cfg="$1" + + json_add_object "$cfg" + for var in $(get_vars "$cfg"); do + config_get val "$cfg" "$var" + json_add_string "$var" "$val" + done + json_close_object "$cfg" +} + +reload_service() { + config_load udebug + + json_init + json_add_object service + config_foreach add_debug_service service + json_close_object + ubus call udebug set_config "$(json_dump)" +} + +service_triggers() { + procd_add_reload_trigger udebug +} + +service_started() { + ubus -t 10 wait_for udebug + [ $? = 0 ] && reload_service +} |
