svc

Управљање сервисима
git clone https://git.sr.ht/~strahinja/svc
Дневник | Датотеке | Референце | ПРОЧИТАЈМЕ | ЛИЦЕНЦА

wpa_supplicant (1495B)


      1 #!/bin/sh
      2 
      3 svc=wpa_supplicant
      4 svcbin=/sucks/bin/wpa_supplicant
      5 wpa_cli=/sucks/bin/wpa_cli
      6 
      7 [ -e "/bin/svc.d/default/${svc}" ] && . "/bin/svc.d/default/${svc}"
      8 
      9 [ -n "${RUNDIR}" ] && mkdir -p "${RUNDIR}"
     10 
     11 PIDLOOPDELAY=500000
     12 PID=$(pgrep -f ${svcbin})
     13 case $1 in
     14 	-e)	if [ -z "${PID}" ]; then
     15 			exit 2
     16 		fi;;
     17 	-s)	$0 -e
     18 		case $? in
     19 			0)	exit 1;;
     20 			2)	
     21 				logger -it wpa_supplicant "Executing ${svcbin} ${PARAMS}"
     22 				${svcbin} ${PARAMS} | logger -it wpa_supplicant
     23 				$0 -e
     24 				errno=$?
     25 				if [ -n "${RUNDIR}" ]; then
     26 					case $errno in
     27 					0) :> "${RUNDIR}/${SERVICE}.up";;
     28 					*) rm "${RUNDIR}/${SERVICE}.up" \
     29 						2>/dev/null;;
     30 					esac
     31 				fi
     32 				# Run sdhcp when connected; not reliable in my testing
     33 				logger -it wpa_supplicant "Executing ${wpa_cli} -i ${IFACE} -a ${0%/*}/sdhcp"
     34 				${wpa_cli} -i "${IFACE}" -a ${0%/*}/sdhcp | logger -it wpa_supplicant
     35 				;;
     36 			*)	exit $?;;
     37 		esac;;
     38 	-k)	$0 -e
     39 		case $? in
     40 			2)	exit 1;;
     41 			0)	pkill -f "${svcbin}" >/dev/null 2>&1
     42 				pkill -f ${wpa_cli} -i "${IFACE}" >/dev/null 2>&1
     43 				if [ -n "$(pgrep -f "${svcbin}" 2>/dev/null)" ]
     44 				then
     45 					pkill -9 -f "${svcbin}" >/dev/null 2>&1 \
     46 						|| exit 2
     47 				fi
     48 				if [ -n "$(pgrep -f ${wpa_cli} -i "${IFACE}" \
     49 					2>/dev/null)" ]
     50 				then
     51 					pkill -9 -f ${wpa_cli} -i "${IFACE}" \
     52 						>/dev/null 2>&1 || exit 2
     53 				fi
     54 				rm "${PIDFILE}"
     55 				if [ -n "${RUNDIR}" ]; then
     56 					rm "${RUNDIR}/${SERVICE}.up"
     57 				fi;;
     58 			*)	exit $?;;
     59 		esac;;
     60 	-r)	$0 -k
     61 		$0 -s;;
     62 	*)	exit 2;;
     63 esac