From 5eb7872a07da1c3ebc1ce66cdb7098d1042e5a47 Mon Sep 17 00:00:00 2001 From: Joe LeVeque Date: Sat, 2 Mar 2019 15:28:34 -0800 Subject: [PATCH] [services] Ensure swss and syncd services start before dependent services (#2634) * [services] Ensure swss and syncd services start before dependent services * Add 'attach' functions to scripts which get installed to /usr/local/bin so that services only reference the one script each * Add 'After=swss.service' to syncd.service --- files/build_templates/swss.service.j2 | 3 ++- files/build_templates/syncd.service.j2 | 4 +++- files/scripts/swss.sh | 7 +++++-- files/scripts/syncd.sh | 7 +++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/files/build_templates/swss.service.j2 b/files/build_templates/swss.service.j2 index 43e513439a..8bbdc8f329 100644 --- a/files/build_templates/swss.service.j2 +++ b/files/build_templates/swss.service.j2 @@ -13,7 +13,8 @@ Before=ntp-config.service [Service] User=root Environment=sonic_asic_platform={{ sonic_asic_platform }} -ExecStart=/usr/local/bin/swss.sh start +ExecStartPre=/usr/local/bin/swss.sh start +ExecStart=/usr/local/bin/swss.sh attach ExecStop=/usr/local/bin/swss.sh stop [Install] diff --git a/files/build_templates/syncd.service.j2 b/files/build_templates/syncd.service.j2 index 2c073ced92..6fdbed07f8 100644 --- a/files/build_templates/syncd.service.j2 +++ b/files/build_templates/syncd.service.j2 @@ -13,12 +13,14 @@ After=opennsl-modules.service {% elif sonic_asic_platform == 'nephos' %} After=nps-modules-4.9.0-8-2-amd64.service {% endif %} +After=swss.service Before=ntp-config.service [Service] User=root Environment=sonic_asic_platform={{ sonic_asic_platform }} -ExecStart=/usr/local/bin/syncd.sh start +ExecStartPre=/usr/local/bin/syncd.sh start +ExecStart=/usr/local/bin/syncd.sh attach ExecStop=/usr/local/bin/syncd.sh stop [Install] diff --git a/files/scripts/swss.sh b/files/scripts/swss.sh index f7f2e53608..cdd2de332e 100755 --- a/files/scripts/swss.sh +++ b/files/scripts/swss.sh @@ -109,6 +109,9 @@ start() { if [[ x"$WARM_BOOT" != x"true" ]]; then /bin/systemctl start ${PEER} fi +} + +attach() { /usr/bin/${SERVICE}.sh attach } @@ -134,11 +137,11 @@ stop() { } case "$1" in - start|stop) + start|attach|stop) $1 ;; *) - echo "Usage: $0 {start|stop}" + echo "Usage: $0 {start|attach|stop}" exit 1 ;; esac diff --git a/files/scripts/syncd.sh b/files/scripts/syncd.sh index 545879b2f7..7e5ce780e0 100755 --- a/files/scripts/syncd.sh +++ b/files/scripts/syncd.sh @@ -117,6 +117,9 @@ start() { debug "Started ${SERVICE} service..." unlock_service_state_change +} + +attach() { /usr/bin/${SERVICE}.sh attach } @@ -165,11 +168,11 @@ stop() { } case "$1" in - start|stop) + start|attach|stop) $1 ;; *) - echo "Usage: $0 {start|stop}" + echo "Usage: $0 {start|attach|stop}" exit 1 ;; esac