multiple instances of ppp

Maksim Yevmenkin maksim.yevmenkin at gmail.com
Fri Oct 12 11:41:21 PDT 2007


Mike and All,

any objections to the following patch as an extension for new
/etc/rc.d/ppp? it allows to start/stop individual ppp profiles.

thanks,
max

Index: ppp
===================================================================
RCS file: /home/ncvs/src/etc/rc.d/ppp,v
retrieving revision 1.14
diff -u -r1.14 ppp
--- ppp 12 Oct 2007 16:35:36 -0000      1.14
+++ ppp 12 Oct 2007 18:39:01 -0000
@@ -13,6 +13,7 @@
 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()
 {
-       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 @@
        /etc/rc.d/pf resync
 }

+ppp_stop_profile() {
+       local _ppp_profile
+
+       _ppp_profile=$1
+
+       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 $*


thanks,
max


More information about the freebsd-rc mailing list