diff --git a/sonic-utilities-data/templates/sonic.service.j2 b/sonic-utilities-data/templates/sonic.service.j2 index 72d6ab698c..93a2d9774b 100644 --- a/sonic-utilities-data/templates/sonic.service.j2 +++ b/sonic-utilities-data/templates/sonic.service.j2 @@ -25,6 +25,9 @@ StartLimitIntervalSec=1200 StartLimitBurst=3 [Service] +{%- if manifest.service.type is defined and manifest.service.type %} +Type={{ manifest.service.type }} +{%- endif %} ExecStartPre={{path}}/{{manifest.service.name}}.sh start{% if multi_instance %} %i{% endif %} ExecStart={{path}}/{{manifest.service.name}}.sh wait{% if multi_instance %} %i{% endif %} ExecStop={{path}}/{{manifest.service.name}}.sh stop{% if multi_instance %} %i{% endif %} diff --git a/sonic_package_manager/manifest.py b/sonic_package_manager/manifest.py index bc156f102c..27b2bf6ea7 100644 --- a/sonic_package_manager/manifest.py +++ b/sonic_package_manager/manifest.py @@ -203,6 +203,7 @@ def unmarshal(self, value): ManifestField('host-service', DefaultMarshaller(bool), True), ManifestField('delayed', DefaultMarshaller(bool), False), ManifestField('check_up_status', DefaultMarshaller(bool), False), + ManifestField('type', DefaultMarshaller(str), ''), ManifestRoot('warm-shutdown', [ ManifestArray('after', DefaultMarshaller(str)), ManifestArray('before', DefaultMarshaller(str)),