diff --git a/packaging/Solaris/samba.init.master b/packaging/Solaris/samba.init.master index 61e222b..ef942bb 100755 --- a/packaging/Solaris/samba.init.master +++ b/packaging/Solaris/samba.init.master @@ -10,11 +10,11 @@ then # /usr not mounted exit fi +zonename=`test -x /usr/bin/zonename && /usr/bin/zonename` +initpid=`/usr/bin/pgrep -u root -f ${zonename:+-z$zonename} '^/sbin/init$'` + killproc() { # kill the named process(es) - pid=`/usr/bin/ps -e | - /usr/bin/grep -w $1 | - /usr/bin/sed -e 's/^ *//' -e 's/ .*//'` - [ "$pid" != "" ] && kill $pid + pkill -x -P$initpid ${zonename:+-z$zonename} $1 } # Start/stop processes required for samba server @@ -29,18 +29,20 @@ case "$1" in # -D -s$BASE/lib/smb.conf # BASE=__BASEDIR__ - $BASE/sbin/nmbd - $BASE/sbin/smbd + $BASE/sbin/nmbd + $BASE/sbin/smbd $BASE/sbin/winbindd ;; 'stop') killproc nmbd killproc smbd + killproc winbindd ;; 'restart') killproc nmbd killproc smbd + killproc winbindd BASE=__BASEDIR__ $BASE/sbin/nmbd $BASE/sbin/smbd