summaryrefslogtreecommitdiffstats
path: root/package/tpm2-abrmd/S80tpm2-abrmd
blob: cfa9d44771c5562a4cf9249890320459e03b259a (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
64
65
66
67
68
69
70
71
72
73
74
#!/bin/sh

my_name="$0"

check_required_files() {
	[ -f "$1" ] || {
		echo "$my_name: $1 is missing"
		exit 1
	}
}

check_device() {
	ls -1 /dev/tpm[0-9]* > /dev/null 2>&1 || {
		echo "device driver not loaded, skipping."
		exit 0
	}
	chown tss:tss /dev/tpm[0-9]* && chmod 600 /dev/tpm*
}

rm_stale_pidfile() {
	if [ -e "$1" ]; then
		exe="/proc/$(cat "$1")/exe"
		{ [ -s "$exe" ] && [ "$(readlink -f "$exe")" = "$2" ]; } || rm -f "$1"
	fi
}

start() {
	printf "Starting tpm2-abrmd: "
	check_device
	rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd
	start-stop-daemon -S -q -o -b -p /var/run/tpm2-abrmd.pid -c tss:tss -x /usr/sbin/tpm2-abrmd -- ${DAEMON_OPTS} || {
		echo "FAIL"
		exit 1
	}
	pidof /usr/sbin/tpm2-abrmd > /var/run/tpm2-abrmd.pid
	echo "OK"
}

stop() {
	printf "Stopping tpm2-abrmd: "
	start-stop-daemon -K -q -o -p /var/run/tpm2-abrmd.pid -u tss -x /usr/sbin/tpm2-abrmd || {
		echo "FAIL"
		exit 1
	}
	rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd
	echo "OK"
}

check_required_files /etc/dbus-1/system.d/tpm2-abrmd.conf

# defaults
DAEMON_OPTS="--tcti=device --logger=syslog --max-connections=20"

# Read configuration variable file if it is present
[ -r /etc/default/tpm2-abrmd ] && . /etc/default/tpm2-abrmd

case "$1" in
	start)
		start
	       	;;
	stop)
	   	stop
		;;
	restart|reload)
		stop
		sleep 1
		start
		;;
	*)
		echo "Usage: tpm2-abrmd {start|stop|restart|reload}" >&2
		exit 1
esac

exit 0
OpenPOWER on IntegriCloud