From 4b9bc511e70a7981a11ca0b599c0fddb22ceff0d Mon Sep 17 00:00:00 2001 From: vrenu2018 Date: Mon, 22 Dec 2025 20:27:26 +0000 Subject: [PATCH] RDKEMW-11862: Analyze the impact of using bash over busybox in systemd services Reason for change: Understand the performance of /bin/bash vs /bin/ash Test Procedure: Boot the TV and check for activation time using systemd-analyze blame Risks: low Signed-off-by: vrenu2018 --- systemd_units/gstreamer-cleanup.service | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/systemd_units/gstreamer-cleanup.service b/systemd_units/gstreamer-cleanup.service index 30131b16..7c117070 100644 --- a/systemd_units/gstreamer-cleanup.service +++ b/systemd_units/gstreamer-cleanup.service @@ -29,10 +29,10 @@ RemainAfterExit=Yes Environment="CDLFILE=$(cat /opt/cdl_flashed_file_name)" Environment="PREV_CDLFILE=$(cat /opt/previous_flashed_file_name)" Environment="GST_REGISTRY=/opt/.gstreamer/registry.bin" -ExecStartPre=/bin/sh -c 'if [ -f /lib/rdk/logMilestone.sh ];then sh /lib/rdk/logMilestone.sh "GST_CLEANUP_START"; fi;' -ExecStart=-/bin/sh -c 'if [[ ! -f /opt/previous_flashed_file_name || ! -f /opt/cdl_flashed_file_name || ${CDLFILE} != *"${PREV_CDLFILE}"* ]]; then echo "Removing gstreamer registry on bootup after CDL"; rm -rf /opt/.gstreamer;GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; elif [ ! -f /opt/.gstreamer/registry.bin ]; then echo "Gstreamer registry empty"; rm -rf /opt/.gstreamer; GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; else echo "gstreamer registry is not removed, previous reboot is not due to CDL"; fi' -ExecStartPost=/bin/sh -c 'if [ -f /lib/rdk/logMilestone.sh ];then sh /lib/rdk/logMilestone.sh "GST_CLEANUP_COMPLETE"; fi;' -ExecStop=/bin/sh -c 'FW_UPDATE_STATE=$(cat /opt/fwdnldstatus.txt | grep FwUpdateState | cut -d "|" -f2); echo "FW_UPDATE_STATE: $FW_UPDATE_STATE"; if [ "$FW_UPDATE_STATE" == "Preparing to reboot" ]; then echo "Removing gstreamer registry after firmware update"; rm -rf /opt/.gstreamer; fi;' +# MODIFIED: Converted bash-specific syntax to ash/sh syntax. +ExecStart=-/bin/ash -c 'if [ ! -f /opt/previous_flashed_file_name ] || [ ! -f /opt/cdl_flashed_file_name ] || ! echo "$CDLFILE" | grep -q "$PREV_CDLFILE"; then echo "Removing gstreamer registry on bootup after CDL"; rm -rf /opt/.gstreamer;GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; elif [ ! -f /opt/.gstreamer/registry.bin ]; then echo "Gstreamer registry empty"; rm -rf /opt/.gstreamer; GST_REGISTRY_UPDATE=yes gst-inspect-1.0 >/dev/null 2>&1; else echo "gstreamer registry is not removed, previous reboot is not due to CDL"; fi' +ExecStop=/bin/ash -c 'FW_UPDATE_STATE=$(cat /opt/fwdnldstatus.txt | grep FwUpdateState | cut -d "|" -f2); echo "FW_UPDATE_STATE: $FW_UPDATE_STATE"; if [ "$FW_UPDATE_STATE" = "Preparing to reboot" ]; then echo "Removing gstreamer registry after firmware update"; rm -rf /opt/.gstreamer; fi;' + [Install] WantedBy=multi-user.target