S80tpm2-abrmd 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/sh
  2. my_name="$0"
  3. check_required_files() {
  4. [ -f "$1" ] || {
  5. echo "$my_name: $1 is missing"
  6. exit 1
  7. }
  8. }
  9. check_device() {
  10. ls -1 /dev/tpm[0-9]* > /dev/null 2>&1 || {
  11. echo "device driver not loaded, skipping."
  12. exit 0
  13. }
  14. chown tss:tss /dev/tpm[0-9]* && chmod 600 /dev/tpm*
  15. }
  16. rm_stale_pidfile() {
  17. if [ -e "$1" ]; then
  18. exe="/proc/$(cat "$1")/exe"
  19. { [ -s "$exe" ] && [ "$(readlink -f "$exe")" = "$2" ]; } || rm -f "$1"
  20. fi
  21. }
  22. start() {
  23. printf "Starting tpm2-abrmd: "
  24. check_device
  25. rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd
  26. start-stop-daemon -S -q -o -b -m -p /var/run/tpm2-abrmd.pid -c tss:tss -x /usr/sbin/tpm2-abrmd -- ${DAEMON_OPTS} || {
  27. echo "FAIL"
  28. exit 1
  29. }
  30. pidof /usr/sbin/tpm2-abrmd > /var/run/tpm2-abrmd.pid
  31. echo "OK"
  32. }
  33. stop() {
  34. printf "Stopping tpm2-abrmd: "
  35. start-stop-daemon -K -q -o -p /var/run/tpm2-abrmd.pid -u tss -x /usr/sbin/tpm2-abrmd || {
  36. echo "FAIL"
  37. exit 1
  38. }
  39. rm_stale_pidfile /var/run/tpm2-abrmd.pid /usr/sbin/tpm2-abrmd
  40. echo "OK"
  41. }
  42. check_required_files /etc/dbus-1/system.d/tpm2-abrmd.conf
  43. # defaults
  44. DAEMON_OPTS="--tcti=device --logger=syslog --max-connections=20"
  45. # Read configuration variable file if it is present
  46. [ -r /etc/default/tpm2-abrmd ] && . /etc/default/tpm2-abrmd
  47. case "$1" in
  48. start)
  49. start
  50. ;;
  51. stop)
  52. stop
  53. ;;
  54. restart|reload)
  55. stop
  56. sleep 1
  57. start
  58. ;;
  59. *)
  60. echo "Usage: tpm2-abrmd {start|stop|restart|reload}" >&2
  61. exit 1
  62. esac
  63. exit 0