[docker-teamd]: Automatically start the processes after host interfaces are created (#278)
Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
This commit is contained in:
parent
e702fc0732
commit
877291ae91
@ -19,4 +19,5 @@ COPY ["teamd.j2", "/etc/swss/teamd/"]
|
||||
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
|
||||
RUN rm -rf /debs
|
||||
|
||||
ENTRYPOINT /usr/bin/config.sh && /usr/bin/start.sh
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
CMD ["/usr/bin/config.sh && /usr/bin/start.sh"]
|
||||
|
@ -2,23 +2,35 @@
|
||||
|
||||
TEAMD_CONF_PATH=/etc/teamd
|
||||
|
||||
function start_app {
|
||||
if [ -d $TEAMD_CONF_PATH ]; then
|
||||
for f in $TEAMD_CONF_PATH/*; do
|
||||
teamd -f $f -d
|
||||
done
|
||||
fi
|
||||
teamsyncd &
|
||||
}
|
||||
|
||||
function clean_up {
|
||||
pkill -9 teamd
|
||||
pkill -9 teamsyncd
|
||||
service rsyslog stop
|
||||
exit
|
||||
pkill -9 teamd
|
||||
pkill -9 teamsyncd
|
||||
service rsyslog stop
|
||||
exit
|
||||
}
|
||||
|
||||
trap clean_up SIGTERM SIGKILL
|
||||
|
||||
service rsyslog start
|
||||
|
||||
if [ -d $TEAMD_CONF_PATH ]; then
|
||||
for f in $TEAMD_CONF_PATH/*; do
|
||||
teamd -f $f -d
|
||||
done
|
||||
fi
|
||||
|
||||
teamsyncd &
|
||||
|
||||
read
|
||||
# Before teamd could automatically add newly created host interfaces into the
|
||||
# LAG, this workaround will wait until the host interfaces are created and then
|
||||
# the processes will be started.
|
||||
while true; do
|
||||
# Check if front-panel ports are configured
|
||||
result=`echo -en "SELECT 0\nHGETALL PORT_TABLE:ConfigDone" | redis-cli | sed -n 3p`
|
||||
if [ "$result" != "0" ]; then
|
||||
start_app
|
||||
read
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
Reference in New Issue
Block a user