buildroot/package/tpm2-abrmd/S80tpm2-abrmd
Carlos Santos ab1184fd69 tpm2-abrmd: don't test if the binary exists in the init script
The test doesn't make sense. Buildroot installs both abrmd and its init
script as part of the same package. But if it ever happens for some
reason, the error message from start-stop-daemon should be pretty clear.

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-04-16 07:34:59 +02:00

75 lines
1.5 KiB
Bash
Executable file

#!/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 --max-transient-objects=20 --fail-on-loaded-trans"
# 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