summaryrefslogtreecommitdiff
blob: da3785f0a2aab0403d1420782872aee51e767dd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#!/sbin/runscript

if [ -z "${SETIATHOME_THREADS}" ]; then
	SETIATHOME_THREADS=$( egrep -c "^bogomips" /proc/cpuinfo )
fi

depend() { 
	need net
}

checkconfig() {
	SETIBINDIR="/opt/setiathome"
	if [ ! -e "${SETIATHOME_DIR}" ] ; then
		einfo "Creating ${SETIATHOME_DIR}"
		mkdir "${SETIATHOME_DIR}"
	fi

	if [ ! -e "${SETIATHOME_DIR}/user_info.sah" ] ; then
		eerror "Please setup SETI@home first by running the following commands:"
		eerror cd "${SETIATHOME_DIR}"
		eerror ${SETIATHOME_DIR}/setiathome -login ${SETIATHOME_OPTIONS}
		return 1
	fi

	if [ "${SETIATHOME_THREADS}" != '1' ] ; then
		cd ${SETIATHOME_DIR}
		for thread in `seq 2 "${SETIATHOME_THREADS}"`; do
			if [ ! -e "${SETIATHOME_DIR}/thread${thread}" ]; then
				mkdir "${SETIATHOME_DIR}/thread${thread}"
				cp "${SETIATHOME_DIR}/user_info.sah" "${SETIATHOME_DIR}/thread${thread}"
			fi
		done
	fi
	return 0
}

start() {
	checkconfig || return 1;

	if [ "${SETIATHOME_THREADS}" = '1' ] ; then
		ebegin "Starting SETI@home"
	else
		ebegin "Starting SETI@home (${SETIATHOME_THREADS} threads)"
	fi

	for thread in `seq 1 "${SETIATHOME_THREADS}"`; do
		cd "${SETIATHOME_DIR}"
		if [ "${thread}" != '1' ]; then
			cd "thread${thread}"
		fi

		${SETIATHOME_DIR}/setiwrapper ${SETIBINDIR} ${SETIATHOME_OPTIONS} >& setiathome.log &
	done

	eend $?
}

stop() {
	ebegin "Stopping SETI@home"
	killall setiwrapper
	killall setiathome
	eend $?
}