[services] introduce sonic.target (#5705)

- Why I did it
Group all SONiC services together and able to manage them together. Will be used in config reload command as much simpler and generic way to restart services.

- How I did it
Add services to sonic.target

- How to verify it
Together with Azure/sonic-utilities#1199
config reload -y

Signed-off-by: Stepan Blyshchak <stepanb@nvidia.com>
This commit is contained in:
Stepan Blyshchak 2021-02-25 14:26:24 +02:00 committed by Ying Xie
parent e7356da986
commit 7fb5a72d23
29 changed files with 90 additions and 28 deletions

View File

@ -2,6 +2,8 @@
Description=DHCP relay container
Requires=updategraph.service
After=updategraph.service swss.service syncd.service teamd.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -15,4 +17,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -5,6 +5,8 @@ ConditionPathExists=!/usr/share/sonic/hwsku/gearbox_config.json
After=database.service updategraph.service
After=interfaces-config.service
After=swss.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
[Service]
@ -15,4 +17,4 @@ ExecStart=/usr/local/bin/gbsyncd.sh wait
ExecStop=/usr/local/bin/gbsyncd.sh stop
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,6 +2,8 @@
Description=ICCPD container
Requires=updategraph.service swss.service
After=updategraph.service swss.service
BindsTo=sonic.target
After=sonic.target
[Service]
User={{ sonicadmin_user }}
@ -10,4 +12,4 @@ ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
[Install]
WantedBy=multi-user.target swss.service
WantedBy=sonic.target swss.service

View File

@ -2,6 +2,8 @@
Description=Management Framework container
Requires=database.service
After=database.service swss.service syncd.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
[Service]
@ -9,4 +11,3 @@ User={{ sonicadmin_user }}
ExecStartPre=/usr/bin/{{docker_container_name}}.sh start
ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop

View File

@ -1,9 +1,11 @@
[Unit]
Description=Delays management framework container until SONiC has started
PartOf=mgmt-framework.service
[Timer]
OnUnitActiveSec=0 sec
OnBootSec=3min 30 sec
Unit=mgmt-framework.service
[Install]
WantedBy=timers.target
WantedBy=timers.target sonic.target

View File

@ -2,6 +2,8 @@
Description=NAT container
Requires=updategraph.service
After=updategraph.service swss.service syncd.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -15,5 +17,5 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -4,6 +4,8 @@ Requires=database{% if multi_instance == 'true' %}@%i{% endif %}.service
After=database{% if multi_instance == 'true' %}@%i{% endif %}.service
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -18,4 +20,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -6,6 +6,10 @@ After=swss{% if multi_instance == 'true' %}@%i{% endif %}.service
After=syncd{% if multi_instance == 'true' %}@%i{% endif %}.service
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -19,4 +23,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -12,6 +12,8 @@ Requires=opennsl-modules.service
Requires=updategraph.service
After=updategraph.service
After=interfaces-config.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service pmon.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -26,4 +28,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -17,6 +17,8 @@ After=nps-modules.service
Requires=updategraph.service
After=updategraph.service
After=interfaces-config.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
[Service]
@ -30,4 +32,4 @@ TimeoutStartSec=480
{% endif %}
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -7,6 +7,8 @@ After=topology.service
{% endif %}
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -20,4 +22,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -5,6 +5,8 @@ After=database.service updategraph.service
{% if sonic_asic_platform == 'mellanox' %}
After=syncd.service
{% endif %}
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -18,4 +20,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -3,6 +3,8 @@ Description=Router advertiser container
Requires=updategraph.service
After=updategraph.service swss.service syncd.service
Before=ntp-config.service
BindsTo=sonic.target
After=sonic.target
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -15,4 +17,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,6 +2,8 @@
Description=RestAPI container
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
[Service]
@ -13,4 +15,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,6 +2,8 @@
Description=sFlow container
Requisite=swss.service
After=swss.service syncd.service hostcfgd.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -15,4 +17,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -3,8 +3,9 @@ Description=SNMP container
Requires=updategraph.service
Requisite=swss.service
After=updategraph.service swss.service syncd.service
BindsTo=sonic.target
After=sonic.target
Before=ntp-config.service
Conflicts=snmp.timer
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -14,4 +15,3 @@ ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
Restart=always
RestartSec=30

View File

@ -1,6 +1,6 @@
[Unit]
Description=Delays snmp container until SONiC has started
Conflicts=snmp.service
PartOf=snmp.service
After=swss.service
[Timer]

View File

@ -0,0 +1,5 @@
[Unit]
Description=SONiC services target.
[Install]
WantedBy=multi-user.target

View File

@ -685,6 +685,9 @@ sudo cp $BUILD_TEMPLATES/mgmt-framework.timer $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_S
echo "mgmt-framework.timer" | sudo tee -a $GENERATED_SERVICE_FILE
{% endif %}
sudo cp $BUILD_TEMPLATES/sonic.target $FILESYSTEM_ROOT_USR_LIB_SYSTEMD_SYSTEM
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable sonic.target
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get purge -y python-dev python3-dev
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get purge -y build-essential libssl-dev swig
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get clean -y

View File

@ -3,6 +3,8 @@ Description=Telemetry container
Requires=database.service
After=database.service swss.service syncd.service
Before=ntp-config.service
BindsTo=sonic.target
After=sonic.target
StartLimitIntervalSec=1200
StartLimitBurst=3
@ -13,4 +15,3 @@ ExecStart=/usr/bin/{{docker_container_name}}.sh wait
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
Restart=always
RestartSec=30

View File

@ -1,9 +1,11 @@
[Unit]
Description=Delays telemetry container until SONiC has started
PartOf=telemetry.service
[Timer]
OnUnitActiveSec=0 sec
OnBootSec=3min 30 sec
Unit=telemetry.service
[Install]
WantedBy=timers.target
WantedBy=timers.target sonic.target

View File

@ -2,10 +2,13 @@
Description=Update hostname based on configdb
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/hostname-config.sh
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,10 +2,13 @@
Description=Update interfaces configuration
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/interfaces-config.sh
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,12 +2,15 @@
Description=Update NTP configuration
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
Before=ntp.service
StartLimitIntervalSec=0
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ntp-config.sh
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -3,6 +3,8 @@ Description=Network Time Service
Documentation=man:ntpd(8)
After=network.target
Conflicts=systemd-timesyncd.service
BindsTo=sonic.target
After=sonic.target
StartLimitIntervalSec=0
[Service]

View File

@ -2,10 +2,13 @@
Description=Update rsyslog configuration
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/rsyslog-config.sh
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,6 +2,8 @@
Description=Control Plane ACL configuration daemon
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=simple
@ -10,4 +12,4 @@ Restart=always
RestartSec=30
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,10 +2,13 @@
Description=Host config enforcer daemon
Requires=updategraph.service
After=updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=simple
ExecStart=/usr/local/bin/hostcfgd
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target

View File

@ -2,6 +2,8 @@
Description=Process and docker CPU/memory utilization data export daemon
Requires=database.service updategraph.service
After=database.service updategraph.service
BindsTo=sonic.target
After=sonic.target
[Service]
Type=simple
@ -9,5 +11,4 @@ ExecStart=/usr/local/bin/procdockerstatsd
Restart=always
[Install]
WantedBy=multi-user.target
WantedBy=sonic.target