svc

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

sdhcp (1172B)


      1 #!/bin/sh
      2 
      3 svc=sdhcp
      4 svcbin=/bin/sdhcp
      5 
      6 . /bin/svc.d/default/${svc}
      7 
      8 case $2 in
      9 	CONNECTED)
     10 		logger -it sdhcp "From wpa_cli: called with arguments: {$@}"
     11 		logger -it sdhcp "WPA_CTRL_DIR={${WPA_CTRL_DIR}}, WPA_ID={${WPA_ID}}, \
     12 WPA_ID_STR={${WPA_ID_STR}}"
     13 		${svcbin} $1 >/dev/null 2>&1 &
     14 		exit 0;;
     15 	DISCONNECTED)
     16 		exit 0;;
     17 	*)	;; # FALLTHROUGH
     18 esac
     19 
     20 PID=$(pgrep -f ${svcbin})
     21 case $1 in
     22 	-e)	if [ -z "${FROMSELF}" ] && [ "${IFACE}" = "wlan0" ]; then
     23 			exit 1
     24 		elif [ -z "${PID}" ]; then
     25 			exit 2
     26 		fi;;
     27 	-s)	if [ "${IFACE}" = "wlan0" ]; then
     28 			exit 1
     29 		fi
     30 		env FROMSELF=1 $0 -e
     31 		errno=$?
     32 		case ${errno} in
     33 		0)	exit 1;;
     34 		2)	${svcbin} ${PARAMS} >/dev/null 2>&1 &
     35 			if [ -n "${STARTDELAY}" ]; then
     36 				/bin/usleep "${STARTDELAY}"
     37 			fi
     38 			env FROMSELF=1 $0 -e;;
     39 		*)	exit ${errno};;
     40 		esac;;
     41 	-k)	env FROMSELF=1 $0 -e
     42 		case $? in
     43 			2)	exit 1;;
     44 			0)	kill "${PID}" >/dev/null 2>&1
     45 				if [ -n "$(pgrep -f "${svcbin}" 2>/dev/null)" ]
     46 				then
     47 					pkill -9 -f "${svcbin}" >/dev/null 2>&1 \
     48 						|| exit 2
     49 				fi
     50 				rm "${PIDFILE}" 2>/dev/null;;
     51 			*)	exit 1;;
     52 		esac;;
     53 	-r)	if [ "${IFACE}" = "wlan0" ]; then
     54 			exit 1
     55 		fi
     56 		$0 -k
     57 		$0 -s;;
     58 	*)	exit 2;;
     59 esac