mirror of
git://git.openembedded.org/meta-openembedded
synced 2026-01-01 13:58:06 +00:00
openvpn: respect pid file in init.d service start
openvpn only provides options to update a pid file but not to check it for running processes. Consecutive issued start commands therefore lead to multiple running processes with the same configurations, which is the origin of all kinds of problems of which unnecessary resource usage is the least. Using start-stop-daemon the pid file is inspected for running processes before start. Signed-off-by: Fabian Klemp <fabian.klemp@axino-group.com> Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
parent
1d57c52f07
commit
f62c85e86b
|
|
@ -4,6 +4,7 @@
|
|||
# <rob@mars.org>, edited by iwj and cs
|
||||
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
|
||||
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
|
||||
# Modified for respecting pid file on service start by Fabian Klemp <fabian.klemp@axino-group.com>
|
||||
|
||||
test $DEBIAN_SCRIPT_DEBUG && set -v -x
|
||||
|
||||
|
|
@ -14,10 +15,17 @@ test -d $CONFIG_DIR || exit 0
|
|||
|
||||
start_vpn () {
|
||||
modprobe tun >/dev/null 2>&1 || true
|
||||
$DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
|
||||
--config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
|
||||
start-stop-daemon --start --quiet --pidfile /var/run/openvpn.$NAME.pid \
|
||||
--exec $DAEMON -- \
|
||||
--daemon --writepid /var/run/openvpn.$NAME.pid \
|
||||
--config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || rc="$?"
|
||||
case $rc in
|
||||
1) echo -n " ALREADY STARTED->";;
|
||||
3) echo -n " FAILED->";;
|
||||
esac
|
||||
echo -n " $NAME"
|
||||
}
|
||||
|
||||
stop_vpn () {
|
||||
kill `cat $PIDFILE` || true
|
||||
rm $PIDFILE
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user