diff options
| author | nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-11-07 22:58:50 +0000 | 
|---|---|---|
| committer | nico <nico@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2011-11-07 22:58:50 +0000 | 
| commit | c9adf561870b4484a355b9898a23c2ab9f4542fb (patch) | |
| tree | a8551ea80e8c1394b981b9fa99898b241863fc8a /package/dropbear/files | |
| parent | 4097f52f4cb4be42ebdf88dd3980d5ce8f19ac7f (diff) | |
package/dropbear: use new service wrapper
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@28838 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/dropbear/files')
| -rwxr-xr-x | package/dropbear/files/dropbear.init | 30 | 
1 files changed, 18 insertions, 12 deletions
diff --git a/package/dropbear/files/dropbear.init b/package/dropbear/files/dropbear.init index d06d2d534..c909d2896 100755 --- a/package/dropbear/files/dropbear.init +++ b/package/dropbear/files/dropbear.init @@ -2,10 +2,13 @@  # Copyright (C) 2006-2010 OpenWrt.org  # Copyright (C) 2006 Carlos Sobrinho -NAME=dropbear -PROG=/usr/sbin/dropbear  START=50  STOP=50 + +SERVICE_USE_PID=1 + +NAME=dropbear +PROG=/usr/sbin/dropbear  PIDCOUNT=0  EXTRA_COMMANDS="killclients"  EXTRA_HELP="	killclients Kill ${NAME} processes except servers and yourself" @@ -48,7 +51,8 @@ dropbear_start()  	PIDCOUNT="$(( ${PIDCOUNT} + 1))"  	# prepare parameters (initialise with pid file) -	local args="-P /var/run/${NAME}.${PIDCOUNT}.pid" +	local pid_file="/var/run/${NAME}.${PIDCOUNT}.pid" +	local args="-P $pid_file"  	local val  	# A) password authentication  	config_get_bool val "${section}" PasswordAuth 1 @@ -80,8 +84,7 @@ dropbear_start()  	# execute program and return its exit code  	[ "${verbosed}" -ne 0 ] && echo "${initscript}: section ${section} starting ${PROG} ${args}" -	${PROG} ${args} -	return $? +	SERVICE_PID_FILE="$pid_file" service_start ${PROG} ${args}  }  keygen() @@ -120,14 +123,17 @@ start()  stop()  { -	# killing all server processes -	local pidfile -	for pidfile in `ls /var/run/${NAME}.*.pid` -	 do -		start-stop-daemon -q -K -s KILL -p "${pidfile}" -n "${NAME}" -		rm -f "${pidfile}" +	local pid_file pid_files +	 +	pid_files=`ls /var/run/${NAME}.*.pid 2>/dev/null` +	 +	[ -z "$pid_files" ] && return 1 +	 +	for pid_file in $pid_files; do +		SERVICE_PID_FILE="$pid_file" service_stop ${PROG} && { +			rm -f ${pid_file} +		}  	done -	[ -z "${pidfile}" ] && echo "${initscript}: no pid files, if you get problems with start then try killclients"  }  killclients()  | 
