From 69204f46debd78712d504c86c58c0a8829875797 Mon Sep 17 00:00:00 2001 From: Maksim Yevmenkin Date: Thu, 18 Oct 2007 17:10:40 +0000 Subject: [PATCH] Teach /etc/rc.d/ppp how to start/stop individual instances of ppp. This is an extension of previous commit. Submitted by: Yuri Kurenkov < y dot kurenkov at init dot ru > Reviewed by: mtm MFC after: 3 days --- etc/rc.d/ppp | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/etc/rc.d/ppp b/etc/rc.d/ppp index f9ff88514620..b5ca7df04566 100644 --- a/etc/rc.d/ppp +++ b/etc/rc.d/ppp @@ -13,6 +13,7 @@ name="ppp" rcvar=`set_rcvar` command="/usr/sbin/${name}" start_cmd="ppp_start" +stop_cmd="ppp_stop" start_postcmd="ppp_poststart" ppp_start_profile() @@ -60,11 +61,16 @@ ppp_start_profile() ppp_start() { - local _p + local _ppp_profile _p + + _ppp_profile=$* + if [ -z "${_ppp_profile}" ]; then + _ppp_profile=$ppp_profile + fi echo -n "Starting PPP profile:" - for _p in $ppp_profile; do + for _p in $_ppp_profile; do echo -n " $_p" ppp_start_profile $_p done @@ -80,5 +86,32 @@ ppp_poststart() /etc/rc.d/pf resync } +ppp_stop_profile() { + local _ppp_profile + + _ppp_profile=$1 + + /bin/pkill -f "^${command}.*[[:space:]]${_ppp_profile}\$" || \ + echo -n "(not running)" +} + +ppp_stop() { + local _ppp_profile _p + + _ppp_profile=$* + if [ -z "${_ppp_profile}" ]; then + _ppp_profile=$ppp_profile + fi + + echo -n "Stopping PPP profile:" + + for _p in $_ppp_profile; do + echo -n " $_p" + ppp_stop_profile $_p + done + + echo "." +} + load_rc_config $name -run_rc_command "$1" +run_rc_command $*