xref: /OK3568_Linux_fs/buildroot/package/rng-tools/S21rngd (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun#!/bin/sh
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunNAME="rngd"
4*4882a593SmuzhiyunDAEMON="/usr/sbin/${NAME}"
5*4882a593SmuzhiyunDAEMON_ARGS=""
6*4882a593SmuzhiyunCFG_FILE="/etc/default/${NAME}"
7*4882a593SmuzhiyunPID_FILE="/var/run/${NAME}.pid"
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun# Read configuration variable file if it is present
10*4882a593Smuzhiyun[ -r "${CFG_FILE}" ] && . "${CFG_FILE}"
11*4882a593Smuzhiyun
12*4882a593Smuzhiyunstart()
13*4882a593Smuzhiyun{
14*4882a593Smuzhiyun	printf "Starting ${NAME}: "
15*4882a593Smuzhiyun	start-stop-daemon -S -q -x "${DAEMON}" -- ${DAEMON_ARGS}
16*4882a593Smuzhiyun	[ $? = 0 ] && echo "OK" || echo "FAIL"
17*4882a593Smuzhiyun}
18*4882a593Smuzhiyun
19*4882a593Smuzhiyunstop()
20*4882a593Smuzhiyun{
21*4882a593Smuzhiyun	printf "Stopping ${NAME}: "
22*4882a593Smuzhiyun	# This daemon does not exit properly with the default TERM signal unless
23*4882a593Smuzhiyun	# it's forced to work by something reading /dev/random. Killing it and
24*4882a593Smuzhiyun	# removing its PID file is more straightforward.
25*4882a593Smuzhiyun	if start-stop-daemon -K -q -s KILL -p "${PID_FILE}" -n "${NAME}"; then
26*4882a593Smuzhiyun		rm -f "${PID_FILE}"
27*4882a593Smuzhiyun		echo "OK"
28*4882a593Smuzhiyun	else
29*4882a593Smuzhiyun		echo "FAIL"
30*4882a593Smuzhiyun	fi
31*4882a593Smuzhiyun}
32*4882a593Smuzhiyun
33*4882a593Smuzhiyuncase "$1" in
34*4882a593Smuzhiyun	start)
35*4882a593Smuzhiyun		start
36*4882a593Smuzhiyun		;;
37*4882a593Smuzhiyun	stop)
38*4882a593Smuzhiyun		stop
39*4882a593Smuzhiyun		;;
40*4882a593Smuzhiyun	restart|reload)
41*4882a593Smuzhiyun		stop
42*4882a593Smuzhiyun		start
43*4882a593Smuzhiyun		;;
44*4882a593Smuzhiyun	*)
45*4882a593Smuzhiyun		echo "Usage: $0 {start|stop|restart|reload}" >&2
46*4882a593Smuzhiyun		exit 1
47*4882a593Smuzhiyun		;;
48*4882a593Smuzhiyunesac
49