By adding the extra command `procd` it is now possible to retrieve all relevant data from a procd started service directly via the init script.
Until now, you have to query the ubus to get the information with the following command. `ubus call service list '{"name":"<xxx>","verbose":true}'` With this change, the init script is now extend with the command to get this information easier. `/etc/init.d/<xxx> procd` Signed-off-by: Florian Eckert <f...@dev.tdt.de> --- v2: - Remove duplicate json service string v3: - Change init call from `info` to `procd` - Update PKG_RELEASE for base-files and procd package package/base-files/Makefile | 2 +- package/base-files/files/etc/rc.common | 5 +++++ package/system/procd/Makefile | 2 +- package/system/procd/files/procd.sh | 14 ++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 0c612b73ca..fbcb694592 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -12,7 +12,7 @@ include $(INCLUDE_DIR)/version.mk include $(INCLUDE_DIR)/feeds.mk PKG_NAME:=base-files -PKG_RELEASE:=239 +PKG_RELEASE:=240 PKG_FLAGS:=nonshared PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/ diff --git a/package/base-files/files/etc/rc.common b/package/base-files/files/etc/rc.common index f39b69464e..1a4ee2929b 100755 --- a/package/base-files/files/etc/rc.common +++ b/package/base-files/files/etc/rc.common @@ -121,6 +121,7 @@ extra_command "enabled" "Check if service is started on boot" extra_command "running" "Check if service is running" extra_command "status" "Service status" extra_command "trace" "Start with syscall trace" + extra_command "procd" "Show procd info as json" . $IPKG_INSTROOT/lib/functions/procd.sh basescript=$(readlink "$initscript") @@ -173,6 +174,10 @@ extra_command "enabled" "Check if service is started on boot" _procd_status "$(basename ${basescript:-$initscript})" "$1" fi } + + procd() { + _procd_info "$(basename ${basescript:-$initscript})" + } } ALL_COMMANDS="${ALL_COMMANDS} ${EXTRA_COMMANDS}" diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile index ed73587056..ad0ead2346 100644 --- a/package/system/procd/Makefile +++ b/package/system/procd/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=procd -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git diff --git a/package/system/procd/files/procd.sh b/package/system/procd/files/procd.sh index d86b7219da..1969cdf973 100644 --- a/package/system/procd/files/procd.sh +++ b/package/system/procd/files/procd.sh @@ -474,6 +474,20 @@ _procd_status() { fi } +_procd_info() { + local service="$1" + local data + + data=$(_procd_ubus_call list | jsonfilter -e '@["'"$service"'"]') + [ -z "$data" ] && { echo "not found"; return 3; } + + json_init + json_add_string name "$service" + json_add_boolean verbose "1" + json_add_string name "$service" + _procd_ubus_call list +} + procd_open_data() { local name="$1" json_set_namespace procd __procd_old_cb -- 2.20.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel