mirror of
git://slackware.nl/current.git
synced 2024-12-30 10:24:23 +01:00
646a5c1cbf
a/pkgtools-15.0-noarch-13.txz: Rebuilt. installpkg: default line length for --terselength is the number of columns. removepkg: added --terse mode. upgradepkg: default line length for --terselength is the number of columns. upgradepkg: accept -option in addition to --option. ap/vim-8.1.0026-x86_64-1.txz: Upgraded. d/bison-3.0.5-x86_64-1.txz: Upgraded. e/emacs-26.1-x86_64-1.txz: Upgraded. kde/kopete-4.14.3-x86_64-8.txz: Rebuilt. Recompiled against libidn-1.35. n/conntrack-tools-1.4.5-x86_64-1.txz: Upgraded. n/libnetfilter_conntrack-1.0.7-x86_64-1.txz: Upgraded. n/libnftnl-1.1.0-x86_64-1.txz: Upgraded. n/links-2.16-x86_64-2.txz: Rebuilt. Rebuilt to enable X driver for -g mode. n/lynx-2.8.9dev.19-x86_64-1.txz: Upgraded. n/nftables-0.8.5-x86_64-1.txz: Upgraded. n/p11-kit-0.23.11-x86_64-1.txz: Upgraded. n/ulogd-2.0.7-x86_64-1.txz: Upgraded. n/whois-5.3.1-x86_64-1.txz: Upgraded. xap/network-manager-applet-1.8.12-x86_64-1.txz: Upgraded. xap/vim-gvim-8.1.0026-x86_64-1.txz: Upgraded.
111 lines
3.4 KiB
Bash
111 lines
3.4 KiB
Bash
#!/bin/sh
|
|
#
|
|
# /etc/rc.d/rc.openvpn
|
|
#
|
|
# Start/stop/restart the openvpn daemon.
|
|
#
|
|
# By default, this script will start/stop/restart a daemon for every *.conf
|
|
# file found in /etc/openvpn.
|
|
#
|
|
# To work with a single connection, add the name of the config file:
|
|
# /etc/rc.d/rc.openvpn start configfile.conf
|
|
#
|
|
# You may also use a config file not found in /etc/openvpn by providing a
|
|
# complete path:
|
|
# /etc/rc.d/rc.openvpn start /path/to/some/other/configfile.conf
|
|
#
|
|
# The name of a config file provided with a complete path should not match
|
|
# the name of any config file present in the /etc/openvpn directory.
|
|
|
|
ovpn_start() {
|
|
if [ -x /usr/sbin/openvpn ]; then
|
|
if [ -z "$1" ]; then # start OpenVPN for all config files:
|
|
if /bin/ls /etc/openvpn/*.conf 1> /dev/null 2> /dev/null ; then
|
|
for config in /etc/openvpn/*.conf ; do
|
|
echo "Starting OpenVPN: /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $config).pid --user nobody --group nobody --config $config"
|
|
/usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $config).pid --user nobody --group nobody --config $config
|
|
done
|
|
else
|
|
echo "Unable to start OpenVPN - no .conf files found in /etc/openvpn/."
|
|
fi
|
|
else # start OpenVPN for one config file:
|
|
if [ -r "$1" ]; then
|
|
echo "Starting OpenVPN: /usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $1).pid --user nobody --group nobody --config $1"
|
|
/usr/sbin/openvpn --daemon --writepid /run/openvpn/$(basename $1).pid --user nobody --group nobody --config $1
|
|
else # config file is missing:
|
|
echo "Error starting OpenVPN: config file $1 is missing."
|
|
fi
|
|
fi
|
|
fi
|
|
}
|
|
|
|
ovpn_stop() {
|
|
# Note: OpenVPN has a bad habit of leaving stale pid files around when exiting.
|
|
# Maybe it would be better to just use killall unless called for one config?
|
|
if [ -z "$1" ]; then # stop OpenVPN for all pid files:
|
|
if /bin/ls /run/openvpn/*.pid 1> /dev/null 2> /dev/null ; then
|
|
for pid in /run/openvpn/*.pid ; do
|
|
echo "Stopping OpenVPN for pid file $pid..."
|
|
kill $(cat $pid)
|
|
rm -f $pid
|
|
done
|
|
else
|
|
echo "Warning: no pid files found in /run/openvpn/. Using killall to stop any OpenVPN processes."
|
|
killall openvpn
|
|
fi
|
|
else # stop OpenVPN for one config file:
|
|
if [ -r /run/openvpn/$(basename ${1}).pid ]; then
|
|
echo "Stopping OpenVPN for config file ${1}..."
|
|
kill $(cat /run/openvpn/$(basename ${1}).pid)
|
|
rm -f /run/openvpn/$(basename ${1}).pid
|
|
else
|
|
echo "Error stopping OpenVPN: no such pid file /run/openvpn/$(basename ${1}).pid"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
ovpn_restart() {
|
|
if [ ! -z "$1" ]; then # restart for all config files:
|
|
ovpn_stop
|
|
sleep 2
|
|
ovpn_start
|
|
else # restart for one config file only:
|
|
ovpn_stop $1
|
|
sleep 2
|
|
ovpn_start $1
|
|
fi
|
|
}
|
|
|
|
ovpn_status() {
|
|
if /bin/ls /run/openvpn/*.pid 1> /dev/null 2> /dev/null ; then
|
|
echo "Currently running OpenVPN processes according to .pid files in /run/openvpn:"
|
|
for pid in /run/openvpn/*.pid ; do
|
|
echo " $(basename $pid) ($(cat $pid))"
|
|
done
|
|
else
|
|
echo "No .pid files found in /run/openvpn."
|
|
fi
|
|
}
|
|
|
|
# Create PID directory if it doesn't exist:
|
|
if [ ! -d /run/openvpn ]; then
|
|
mkdir -p /run/openvpn
|
|
fi
|
|
|
|
case "$1" in
|
|
'start')
|
|
ovpn_start $2
|
|
;;
|
|
'stop')
|
|
ovpn_stop $2
|
|
;;
|
|
'restart')
|
|
ovpn_restart $2
|
|
;;
|
|
'status')
|
|
ovpn_status
|
|
;;
|
|
*)
|
|
echo "Usage: $0 {start|stop|restart}"
|
|
esac
|
|
|