|
@@ -1,5 +1,5 @@
|
|
|
#!/bin/sh /etc/rc.common
|
|
|
-# Copyright (C) 2006-2009 OpenWrt.org
|
|
|
+# Copyright (C) 2006-2010 OpenWrt.org
|
|
|
# Copyright (C) 2006 Carlos Sobrinho
|
|
|
|
|
|
NAME=dropbear
|
|
@@ -91,7 +91,7 @@ stop()
|
|
|
local pidfile
|
|
|
for pidfile in `ls /var/run/${NAME}.*.pid`
|
|
|
do
|
|
|
- start-stop-daemon -K -s KILL -p "${pidfile}" -n "${NAME}" >/dev/null
|
|
|
+ start-stop-daemon -q -K -s KILL -p "${pidfile}" -n "${NAME}"
|
|
|
rm -f "${pidfile}"
|
|
|
done
|
|
|
[ -z "${pidfile}" ] && echo "${initscript}: no pid files, if you get problems with start then try killclients"
|
|
@@ -112,12 +112,10 @@ killclients()
|
|
|
[ "${pid}" -eq 0 ] && break
|
|
|
|
|
|
# check if client connection
|
|
|
- ps | grep -e "^[ ]*${pid} " | grep "${PROG}" >/dev/null
|
|
|
- if [ $? -eq 0 ]
|
|
|
- then
|
|
|
+ grep -F -q -e "${PROG}" "/proc/${pid}/cmdline" && {
|
|
|
append ignore "${pid}"
|
|
|
break
|
|
|
- fi
|
|
|
+ }
|
|
|
done
|
|
|
|
|
|
# get all server pids that should be ignored
|
|
@@ -130,9 +128,10 @@ killclients()
|
|
|
local skip
|
|
|
for pid in `pidof "${NAME}"`
|
|
|
do
|
|
|
- # check if correct program
|
|
|
- ps | grep -e "^[ ]*${pid} " | grep "${PROG}" >/dev/null
|
|
|
- [ $? -ne 0 ] && continue
|
|
|
+ # check if correct program, otherwise process next pid
|
|
|
+ grep -F -q -e "${PROG}" "/proc/${pid}/cmdline" || {
|
|
|
+ continue
|
|
|
+ }
|
|
|
|
|
|
# check if pid should be ignored (servers, ourself)
|
|
|
skip=0
|