olmari

/etc/init.d/mjpg-streamer

Sep 10th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.66 KB | None | 0 0
  1. #!/bin/sh
  2. ### BEGIN INIT INFO
  3. # Provides:          mjpg-streamer
  4. # Required-Start:    $local_fs networking
  5. # Required-Stop:
  6. # Should-Start:
  7. # Should-Stop:
  8. # Default-Start:     2 3 4 5
  9. # Default-Stop:      0 1 6
  10. # Short-Description: mjpg-streamer daemon
  11. # Description:       Starts the mjpg-streamer daemon with the user specified in
  12. #                    /etc/default/mjpg-streamer.
  13. ### END INIT INFO
  14.  
  15. # Author: Sami Olmari
  16.  
  17. PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  18. DESC="mjpg-streamer Daemon"
  19. NAME="mjpg-streamer"
  20. DAEMON=mjpg-streamer
  21. DAEMON_HOME=/home/pi/mjpg-streamer   # Where mjpg-streamer is installed
  22. DAEMON_ARGS="-i \"$DAEMON_HOME/input_uvc.so -r SXGA -f 15\" -o \"$DAEMON_HOME/output_http.so\""
  23. PIDFILE=/var/run/$NAME.pid
  24. UMASK=022                            # Change this to 0 if running mjpg-streamer as its own user
  25. PKGNAME=mjpg-streamer
  26. SCRIPTNAME=/etc/init.d/$PKGNAME
  27.  
  28. # Exit if the mjpg-streamer is not installed
  29. [ -x "$DAEMON_HOME/$DAEMON" ] || exit 0
  30.  
  31. # Read configuration variable file if it is present
  32. [ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME
  33.  
  34. # Load the VERBOSE setting and other rcS variables
  35. [ -f /etc/default/rcS ] && . /etc/default/rcS
  36.  
  37. # Define LSB log_* functions.
  38. # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  39. . /lib/lsb/init-functions
  40.  
  41. if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]
  42. then
  43.    log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
  44.    exit 0
  45. fi
  46.  
  47. if [ -z "$MJPG-STREAMER_USER" ]
  48. then
  49.     log_warning_msg "Not starting $PKGNAME, MJPG-STREAMER_USER not set in /etc/default/$PKGNAME."
  50.     exit 0
  51. fi
  52.  
  53. #
  54. # Function to verify if a pid is alive
  55. #
  56. is_alive()
  57. {
  58.    pid=`cat $1` > /dev/null 2>&1
  59.    kill -0 $pid > /dev/null 2>&1
  60.    return $?
  61. }
  62.  
  63. #
  64. # Function that starts the daemon/service
  65. #
  66. do_start()
  67. {
  68.    # Return
  69.    #   0 if daemon has been started
  70.    #   1 if daemon was already running
  71.    #   2 if daemon could not be started
  72.  
  73.    is_alive $PIDFILE
  74.    RETVAL="$?"
  75.  
  76.    if [ $RETVAL != 0 ]; then
  77.        start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \
  78.        --exec $DAEMON_HOME/$DAEMON --chuid $MJPG-STREAMER_USER --user $MJPG-STREAMER_USER --umask $UMASK -- $DAEMON_ARGS
  79.        RETVAL="$?"
  80.    fi
  81. }
  82.  
  83. #
  84. # Function that stops the daemon/service
  85. #
  86. do_stop()
  87. {
  88.    # Return
  89.    #   0 if daemon has been stopped
  90.    #   1 if daemon was already stopped
  91.    #   2 if daemon could not be stopped
  92.    #   other if a failure occurred
  93.  
  94.    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $MJPG-STREAMER_USER --pidfile $PIDFILE
  95.    RETVAL="$?"
  96.    [ "$RETVAL" = "2" ] && return 2
  97.  
  98.    rm -f $PIDFILE
  99.  
  100.    [ "$RETVAL" = "0"  ] && return 0 || return 1
  101. }
  102.  
  103. case "$1" in
  104.   start)
  105.    [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  106.    do_start
  107.    case "$?" in
  108.       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  109.       2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  110.    esac
  111.    ;;
  112.   stop)
  113.    [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
  114.    do_stop
  115.    case "$?" in
  116.       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  117.       2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  118.    esac
  119.    ;;
  120.   restart)
  121.    log_daemon_msg "Restarting $DESC" "$NAME"
  122.    do_stop
  123.    case "$?" in
  124.      0|1)
  125.       do_start
  126.       case "$?" in
  127.          0) log_end_msg 0 ;;
  128.          1) log_end_msg 1 ;; # Old process is still running
  129.          *) log_end_msg 1 ;; # Failed to start
  130.       esac
  131.       ;;
  132.      *)
  133.         # Failed to stop
  134.       log_end_msg 1
  135.       ;;
  136.    esac
  137.    ;;
  138.   *)
  139.    echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
  140.    exit 3
  141.    ;;
  142. esac
  143.  
  144. :
Advertisement
Add Comment
Please, Sign In to add comment