Skip to content

Commit 67fc685

Browse files
yozhao101jleveque
authored andcommitted
[Services] Restart Sflow service upon unexpected critical process exit. (#3751)
Signed-off-by: Yong Zhao <[email protected]>
1 parent 57728c5 commit 67fc685

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

dockers/docker-sflow/Dockerfile.j2

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,7 @@ RUN sed -ri '/^DAEMON_ARGS=""/c DAEMON_ARGS="-c /var/log/hsflowd.crash"' /etc/in
2929

3030
COPY ["start.sh", "/usr/bin/"]
3131
COPY ["supervisord.conf", "/etc/supervisor/conf.d/"]
32+
COPY ["files/supervisor-proc-exit-listener", "/usr/bin"]
33+
COPY ["critical_processes", "/etc/supervisor"]
3234

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

dockers/docker-sflow/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-listener]
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/sflow.service.j2

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,16 @@ Description=sFlow container
33
Requires=swss.service
44
After=swss.service syncd.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-sflow.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@ $(DOCKER_SFLOW)_RUN_OPT += -v /host/warmboot:/var/warmboot
3232

3333
$(DOCKER_SFLOW)_BASE_IMAGE_FILES += psample:/usr/bin/psample
3434
$(DOCKER_SFLOW)_BASE_IMAGE_FILES += sflowtool:/usr/bin/sflowtool
35-
35+
$(DOCKER_SFLOW)_FILES += $(SUPERVISOR_PROC_EXIT_LISTENER_SCRIPT)

0 commit comments

Comments
 (0)