diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh index 0aa33add163..04f407ebbcc 100755 --- a/files/scripts/syncd.sh +++ b/files/scripts/syncd.sh @@ -101,8 +101,13 @@ start() { fi if [[ x"$WARM_BOOT" != x"true" ]]; then - /bin/systemctl stop pmon - /usr/bin/hw-management.sh chipdown + if [[ x"$(/bin/systemctl is-active pmon)" == x"active" ]]; then + /bin/systemctl stop pmon + /usr/bin/hw-management.sh chipdown + /bin/systemctl restart pmon + else + /usr/bin/hw-management.sh chipdown + fi fi if [[ x"$BOOT_TYPE" == x"fast" ]]; then @@ -112,10 +117,6 @@ start() { /usr/bin/mst start /usr/bin/mlnx-fw-upgrade.sh /etc/init.d/sxdkernel start - - if [[ x"$WARM_BOOT" != x"true" ]]; then - /bin/systemctl start pmon - fi fi if [[ x"$WARM_BOOT" != x"true" ]]; then @@ -128,10 +129,6 @@ start() { /usr/bin/${SERVICE}.sh start debug "Started ${SERVICE} service..." - if [[ x"$sonic_asic_platform" == x"mellanox" && x"$BOOT_TYPE" == x"fast" ]]; then - /usr/bin/hw-management.sh chipupen - fi - unlock_service_state_change }