Smart-Home am Beispiel der Präsenzerkennung im Raum Projektarbeit Lennart Heimbs, Johannes Krug, Sebastian Dohle und Kevin Holzschuh bei Prof. Oliver Hofmann SS2019
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mysgw.sysvinit 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. #! /bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides: mysgw
  4. # Required-Start: $remote_fs $syslog
  5. # Required-Stop: $remote_fs $syslog
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: MySensors Gateway
  9. # Description: This file should be used to construct scripts to be
  10. # placed in /etc/init.d.
  11. ### END INIT INFO
  12. # Do NOT "set -e"
  13. # PATH should only include /usr/* if it runs after the mountnfs.sh script
  14. PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
  15. DESC="MySensors Gateway"
  16. NAME=mysgw
  17. DAEMON=%gateway_dir%/$NAME
  18. DAEMON_ARGS="--daemon -q"
  19. PIDFILE=/var/run/$NAME.pid
  20. SCRIPTNAME=/etc/init.d/$NAME
  21. # Exit if the package is not installed
  22. [ -x "$DAEMON" ] || exit 0
  23. # Read configuration variable file if it is present
  24. [ -r /etc/default/$NAME ] && . /etc/default/$NAME
  25. # Load the VERBOSE setting and other rcS variables
  26. . /lib/init/vars.sh
  27. # Define LSB log_* functions.
  28. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present
  29. # and status_of_proc is working.
  30. . /lib/lsb/init-functions
  31. #
  32. # Function that starts the daemon/service
  33. #
  34. do_start()
  35. {
  36. # Return
  37. # 0 if daemon has been started
  38. # 1 if daemon was already running
  39. # 2 if daemon could not be started
  40. start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \
  41. || return 1
  42. start-stop-daemon --start --quiet --exec $DAEMON -- \
  43. $DAEMON_ARGS \
  44. || return 2
  45. # Add code here, if necessary, that waits for the process to be ready
  46. # to handle requests from services started subsequently which depend
  47. # on this one. As a last resort, sleep for some time.
  48. }
  49. #
  50. # Function that stops the daemon/service
  51. #
  52. do_stop()
  53. {
  54. # Return
  55. # 0 if daemon has been stopped
  56. # 1 if daemon was already stopped
  57. # 2 if daemon could not be stopped
  58. # other if a failure occurred
  59. start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
  60. RETVAL="$?"
  61. [ "$RETVAL" = 2 ] && return 2
  62. # Wait for children to finish too if this is a daemon that forks
  63. # and if the daemon is only ever run from this initscript.
  64. # If the above conditions are not satisfied then add some other code
  65. # that waits for the process to drop all resources that could be
  66. # needed by services started subsequently. A last resort is to
  67. # sleep for some time.
  68. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
  69. [ "$?" = 2 ] && return 2
  70. # Many daemons don't delete their pidfiles when they exit.
  71. rm -f $PIDFILE
  72. return "$RETVAL"
  73. }
  74. #
  75. # Function that sends a SIGHUP to the daemon/service
  76. #
  77. do_reload() {
  78. #
  79. # If the daemon can reload its configuration without
  80. # restarting (for example, when it is sent a SIGHUP),
  81. # then implement that here.
  82. #
  83. start-stop-daemon --stop --signal 1 --quiet --name $NAME
  84. return 0
  85. }
  86. case "$1" in
  87. start)
  88. [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  89. do_start
  90. case "$?" in
  91. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  92. 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  93. esac
  94. ;;
  95. stop)
  96. [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
  97. do_stop
  98. case "$?" in
  99. 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  100. 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  101. esac
  102. ;;
  103. status)
  104. status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
  105. ;;
  106. #reload|force-reload)
  107. #
  108. # If do_reload() is not implemented then leave this commented out
  109. # and leave 'force-reload' as an alias for 'restart'.
  110. #
  111. #log_daemon_msg "Reloading $DESC" "$NAME"
  112. #do_reload
  113. #log_end_msg $?
  114. #;;
  115. restart|force-reload)
  116. #
  117. # If the "reload" option is implemented then remove the
  118. # 'force-reload' alias
  119. #
  120. log_daemon_msg "Restarting $DESC" "$NAME"
  121. do_stop
  122. case "$?" in
  123. 0|1)
  124. do_start
  125. case "$?" in
  126. 0) log_end_msg 0 ;;
  127. 1) log_end_msg 1 ;; # Old process is still running
  128. *) log_end_msg 1 ;; # Failed to start
  129. esac
  130. ;;
  131. *)
  132. # Failed to stop
  133. log_end_msg 1
  134. ;;
  135. esac
  136. ;;
  137. *)
  138. #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
  139. echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
  140. exit 3
  141. ;;
  142. esac
  143. :