Browse Source

MT#9065 daemon: don't restart if kernel is needed but not yet installed

Squashed commit of the following:

commit 29560cc3dc
Author: Richard Fuchs <rfuchs@sipwise.com>
Date:   Wed Sep 17 15:15:48 2014 -0400

    fix shell quoting

commit 3085b78377
Author: Richard Fuchs <rfuchs@sipwise.com>
Date:   Wed Sep 17 13:52:26 2014 -0400

    silence modinfo stderr

commit f275f3dbb1
Author: Richard Fuchs <rfuchs@sipwise.com>
Date:   Wed Sep 17 13:52:09 2014 -0400

    s/MEDIAPROXY/RTPENGINE/

commit ff6b7db25d
Author: Richard Fuchs <rfuchs@sipwise.com>
Date:   Wed Sep 17 11:28:26 2014 -0400

    MT#9065 use modinfo/lsmod to probe for kernel module instead of dkms

commit 7d1841294e
Author: Victor Seva <vseva@sipwise.com>
Date:   Tue Sep 16 20:56:57 2014 +0200

    MT#9065 daemon: don't restart if kernel is needed but not yet installed
changes/57/8857/1
Richard Fuchs 11 years ago
parent
commit
c1d7a52552
2 changed files with 48 additions and 13 deletions
  1. +13
    -13
      debian/ngcp-rtpengine-daemon.init
  2. +35
    -0
      debian/ngcp-rtpengine-daemon.postinst

+ 13
- 13
debian/ngcp-rtpengine-daemon.init View File

@ -90,7 +90,7 @@ case "$1" in
esac
fi
echo -n "Starting $DESC: $NAME"
if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then
if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then
set +e
modprobe xt_MEDIAPROXY
if [ -e /proc/mediaproxy/control ]; then
@ -99,13 +99,13 @@ case "$1" in
iptables -N mediaproxy 2> /dev/null
iptables -D INPUT -j mediaproxy 2> /dev/null
iptables -I INPUT -j mediaproxy
iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
iptables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE
iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
iptables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE"
ip6tables -N mediaproxy 2> /dev/null
ip6tables -D INPUT -j mediaproxy 2> /dev/null
ip6tables -I INPUT -j mediaproxy
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE"
set -e
fi
start-stop-daemon --start --quiet --pidfile $PIDFILE \
@ -119,15 +119,15 @@ case "$1" in
if [ "$?" -ne 0 ]; then
return $?
fi
if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then
if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then
set +e
if [ -e /proc/mediaproxy/control ]; then
echo "del $TABLE" > /proc/mediaproxy/control 2>/dev/null
fi
iptables -D INPUT -j mediaproxy 2> /dev/null
iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
ip6tables -D INPUT -j mediaproxy 2> /dev/null
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
rmmod xt_MEDIAPROXY 2>/dev/null
set -e
fi
@ -156,24 +156,24 @@ case "$1" in
;;
esac
fi
if [ $TABLE -ge 0 ] && [ "$VIRT" != "yes" ]; then
if [ "$TABLE" -ge 0 ] && [ "$VIRT" != "yes" ]; then
sleep 1
set +e
if [ -e /proc/mediaproxy/control ]; then
echo "del $TABLE" > /proc/mediaproxy/control 2>/dev/null
fi
iptables -D INPUT -j mediaproxy 2> /dev/null
iptables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
iptables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
ip6tables -D INPUT -j mediaproxy 2> /dev/null
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id $TABLE 2>/dev/null
ip6tables -D mediaproxy -p udp -j MEDIAPROXY --id "$TABLE" 2>/dev/null
rmmod xt_MEDIAPROXY 2>/dev/null
modprobe xt_MEDIAPROXY
iptables -N mediaproxy 2> /dev/null
iptables -I INPUT -j mediaproxy
iptables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE
iptables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE"
ip6tables -N mediaproxy 2> /dev/null
ip6tables -I INPUT -j mediaproxy
ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id $TABLE
ip6tables -I mediaproxy -p udp -j MEDIAPROXY --id "$TABLE"
set -e
fi
start-stop-daemon --start --quiet --pidfile \


+ 35
- 0
debian/ngcp-rtpengine-daemon.postinst View File

@ -0,0 +1,35 @@
#!/bin/sh
set -e
default=/etc/default/ngcp-rtpengine-daemon
modname=xt_MEDIAPROXY
if [ -x /usr/sbin/ngcp-virt-identify ]; then
if /usr/sbin/ngcp-virt-identify --type container; then
VIRT="yes"
fi
fi
if [ "$VIRT" = "yes" ]; then
echo "Container environment detected. Skip kernel module check"
else
if [ -f $default ]; then
. $default || true
fi
if [ "$TABLE" -ge 0 -a -n "$NO_FALLBACK" -a \( "$NO_FALLBACK" = "1" -o "$NO_FALLBACK" = "yes" \) ]; then
if lsmod | grep -q $modname || modinfo $modname > /dev/null 2> /dev/null; then
true
else
echo "Kernel module $modname not found and NO_FALLBACK is set."
echo "Daemon restart not performed."
exit 0
fi
fi
fi
#DEBHELPER#
exit 0

Loading…
Cancel
Save