Skip to content

Commit cff30c5

Browse files
yozhao101jleveque
authored andcommitted
[Services] Restart Router-advertiser service upon unexpected critical process exit (#3681)
Signed-off-by: Yong Zhao <[email protected]>
1 parent 8db6df5 commit cff30c5

File tree

5 files changed

+14
-0
lines changed

5 files changed

+14
-0
lines changed

dockers/docker-router-advertiser/Dockerfile.j2

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@ RUN apt-get clean -y && \
2727
COPY ["start.sh", "/usr/bin/"]
2828
COPY ["docker-router-advertiser.supervisord.conf", "/etc/supervisor/conf.d/"]
2929
COPY ["radvd.conf.j2", "wait_for_intf.sh.j2", "/usr/share/sonic/templates/"]
30+
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
31+
COPY ["critical_processes", "/etc/supervisor"]
3032

3133
ENTRYPOINT ["/usr/bin/supervisord"]
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
radvd

dockers/docker-router-advertiser/docker-router-advertiser.supervisord.conf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ logfile_maxbytes=1MB
33
logfile_backups=2
44
nodaemon=true
55

6+
[eventlistener:supervisor-proc-exit-script]
7+
command=/usr/bin/supervisor-proc-exit-listener
8+
events=PROCESS_STATE_EXITED
9+
autostart=true
10+
autorestart=unexpected
11+
612
[program:start.sh]
713
command=/usr/bin/start.sh
814
priority=1

files/build_templates/radv.service.j2

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@ Description=Router advertiser container
33
Requires=updategraph.service
44
After=updategraph.service swss.service
55
Before=ntp-config.service
6+
StartLimitIntervalSec=1200
7+
StartLimitBurst=3
68

79
[Service]
810
User={{ sonicadmin_user }}
911
ExecStartPre=/usr/bin/{{ docker_container_name }}.sh start
1012
ExecStart=/usr/bin/{{ docker_container_name }}.sh wait
1113
ExecStop=/usr/bin/{{ docker_container_name }}.sh stop
14+
Restart=always
15+
RestartSec=30
1216

1317
[Install]
1418
WantedBy=multi-user.target

rules/docker-router-advertiser.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ SONIC_STRETCH_DBG_DOCKERS += $(DOCKER_ROUTER_ADVERTISER_DBG)
2525
$(DOCKER_ROUTER_ADVERTISER)_CONTAINER_NAME = radv
2626
$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += --net=host --privileged -t
2727
$(DOCKER_ROUTER_ADVERTISER)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
28+
$(DOCKER_ROUTER_ADVERTISER)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)

0 commit comments

Comments
 (0)