|
#!/bin/sh |
|
### BEGIN INIT INFO |
|
# Provides: mjpg-streamer |
|
# Required-Start: $local_fs networking |
|
# Required-Stop: |
|
# Should-Start: |
|
# Should-Stop: |
|
# Default-Start: 2 3 4 5 |
|
# Default-Stop: 0 1 6 |
|
# Short-Description: mjpg-streamer daemon |
|
# Description: Starts the mjpg-streamer daemon with the user specified in |
|
# /etc/default/mjpg-streamer. |
|
### END INIT INFO |
|
|
|
# Author: Sami Olmari |
|
|
|
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin |
|
DESC="mjpg-streamer Daemon" |
|
NAME="mjpg-streamer" |
|
DAEMON=mjpg-streamer |
|
PIDFILE=/var/run/$NAME.pid |
|
PKGNAME=mjpg-streamer |
|
SCRIPTNAME=/etc/init.d/$PKGNAME |
|
|
|
# Read configuration variable file if it is present |
|
[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME |
|
|
|
# Exit if the mjpg-streamer is not installed |
|
[ -x "$DAEMON_HOME/$DAEMON" ] || exit 0 |
|
|
|
# Load the VERBOSE setting and other rcS variables |
|
[ -f /etc/default/rcS ] && . /etc/default/rcS |
|
|
|
# Define LSB log_* functions. |
|
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. |
|
. /lib/lsb/init-functions |
|
|
|
if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ] |
|
then |
|
log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it." |
|
exit 0 |
|
fi |
|
|
|
if [ -z "$MJPG_STREAMER_USER" ] |
|
then |
|
log_warning_msg "Not starting $PKGNAME, MJPG_STREAMER_USER not set in /etc/default/$PKGNAME." |
|
exit 0 |
|
fi |
|
|
|
# |
|
# Function to verify if a pid is alive |
|
# |
|
is_alive() |
|
{ |
|
pid=`cat $1` > /dev/null 2>&1 |
|
kill -0 $pid > /dev/null 2>&1 |
|
return $? |
|
} |
|
|
|
# |
|
# Function that starts the daemon/service |
|
# |
|
do_start() |
|
{ |
|
# Return |
|
# 0 if daemon has been started |
|
# 1 if daemon was already running |
|
# 2 if daemon could not be started |
|
|
|
is_alive $PIDFILE |
|
RETVAL="$?" |
|
|
|
if [ $RETVAL != 0 ]; then |
|
start-stop-daemon --start --background --quiet --pidfile $PIDFILE --make-pidfile \ |
|
--exec $DAEMON_HOME/$DAEMON --chuid $MJPG_STREAMER_USER --user $MJPG_STREAMER_USER --umask $UMASK -- $DAEMON_ARGS |
|
RETVAL="$?" |
|
fi |
|
} |
|
|
|
# |
|
# Function that stops the daemon/service |
|
# |
|
do_stop() |
|
{ |
|
# Return |
|
# 0 if daemon has been stopped |
|
# 1 if daemon was already stopped |
|
# 2 if daemon could not be stopped |
|
# other if a failure occurred |
|
|
|
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $MJPG_STREAMER_USER --pidfile $PIDFILE |
|
RETVAL="$?" |
|
[ "$RETVAL" = "2" ] && return 2 |
|
|
|
rm -f $PIDFILE |
|
|
|
[ "$RETVAL" = "0" ] && return 0 || return 1 |
|
} |
|
|
|
case "$1" in |
|
start) |
|
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" |
|
do_start |
|
case "$?" in |
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; |
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; |
|
esac |
|
;; |
|
stop) |
|
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" |
|
do_stop |
|
case "$?" in |
|
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; |
|
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; |
|
esac |
|
;; |
|
restart) |
|
log_daemon_msg "Restarting $DESC" "$NAME" |
|
do_stop |
|
case "$?" in |
|
0|1) |
|
do_start |
|
case "$?" in |
|
0) log_end_msg 0 ;; |
|
1) log_end_msg 1 ;; # Old process is still running |
|
*) log_end_msg 1 ;; # Failed to start |
|
esac |
|
;; |
|
*) |
|
# Failed to stop |
|
log_end_msg 1 |
|
;; |
|
esac |
|
;; |
|
*) |
|
echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2 |
|
exit 3 |
|
;; |
|
esac |
|
|
|
: |
This comment has been minimized.
Hi! I am attempting to use this with my PCDuino to run Octoprint. I am having an issue with getting the mjpg-streamer to start. When I type in
sudo /etc/init.d/mjpg-streamer start
I get the error/etc/init.d/mjpg-streamer: 13: /etc/default/mjpg-streamer: /home/ubuntu/mjpg-streamer/mjpg-streamer-experimental/input_uvc.so -y: not found
mjpg-streamer loads as I have it displaying the details of the output:MJPG Streamer Version: svn rev: exported o: www-folder-path...: disabled o: HTTP TCP port.....: 8080 o: username:password.: disabled o: commands..........: enabled
I have changed the /default/ file to have the user ubuntu DAEMON_HOME to where it is on my setup. I also had to remove the single quotes from the DAEMON_HOME.
I don't know how to get an init.d file to display the command it is executing so I am not sure if it is calling it write. Do you have any suggestions? It seems as if it is a parsing error with the arguments.
Thanks :)