Created
August 31, 2013 14:36
-
-
Save khromov/6398615 to your computer and use it in GitHub Desktop.
Shairport startup script for Raspberry Pi. See full tutorial:
http://snippets.khromov.se/raspberry-pi-shairport-build-instructions/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /bin/sh | |
### BEGIN INIT INFO | |
# Provides: skeleton | |
# Required-Start: $remote_fs $networking | |
# Required-Stop: $remote_fs $networking | |
# Should-Start: pulseaudio alsa-utils hostname | |
# Should-Stop: pulseaudio alsa-utils hostname | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
### END INIT INFO | |
# Do not configure this file. Edit /etc/default/shairport instead! | |
PATH=/sbin:/usr/sbin:/bin:/usr/bin | |
DESC="Shairport Airtunes emulator" | |
NAME=shairport | |
DAEMON=/usr/bin/shairport | |
# Configuration defaults | |
# eauh the hacks | |
USER=root | |
GROUP=nogroup | |
LOGFILE=/var/log/$NAME.log | |
ERRFILE=/var/log/$NAME.err | |
PIDFILE=/var/run/$NAME.pid | |
AP_NAME=$(hostname) | |
NICE=0 | |
test -f /etc/default/shairport && . /etc/default/shairport | |
DAEMON_ARGS="--daemon --pidfile $PIDFILE --log $LOGFILE" | |
[ -z "$ERRFILE" ] || DAEMON_ARGS="$DAEMON_ARGS --error $ERRFILE" | |
[ -z "$AP_NAME" ] || DAEMON_ARGS="$DAEMON_ARGS --name $AP_NAME" | |
[ -z "$BUFFER_FILL" ] || DAEMON_ARGS="$DAEMON_ARGS -b $BUFFER_FILL" | |
[ -z "$ON_START" ] || DAEMON_ARGS="$DAEMON_ARGS --on-start \"$ON_START\"" | |
[ -z "$ON_STOP" ] || DAEMON_ARGS="$DAEMON_ARGS --on-stop \"$ON_STOP\"" | |
[ -z "$OUTPUT" ] || DAEMON_ARGS="$DAEMON_ARGS --output $OUTPUT" | |
[ -z "$OUTPUT_OPTS" ] || DAEMON_ARGS="$DAEMON_ARGS -- $OUTPUT_OPTS" | |
# Exit if the package is not installed | |
#[ -x "$DAEMON" ] || { echo "$NAME is not installed" >&2 ; exit 1; } | |
# Load the VERBOSE setting and other rcS variables | |
. /lib/init/vars.sh | |
# Define LSB log_* functions. | |
# Depend on lsb-base (>= 3.2-14) to ensure that this file is present | |
# and status_of_proc is working. | |
. /lib/lsb/init-functions | |
do_start() | |
{ | |
# Let the daemon write to the pid/log/error files | |
touch $PIDFILE $LOGFILE $ERRFILE | |
chown root:$GROUP $PIDFILE $LOGFILE $ERRFILE | |
chmod 660 $PIDFILE $LOGFILE $ERRFILE | |
start-stop-daemon --start --quiet \ | |
--pidfile $PIDFILE \ | |
--exec $DAEMON \ | |
--chuid $USER:$GROUP \ | |
--nicelevel $NICE \ | |
-- $DAEMON_ARGS | |
} | |
do_stop() | |
{ | |
start-stop-daemon --stop --quiet \ | |
--pidfile $PIDFILE \ | |
--exec $DAEMON \ | |
--name $NAME \ | |
--retry=TERM/10/KILL/5 | |
} | |
do_reload() | |
{ | |
[ -f $PIDFILE ] && kill -HUP $(cat $PIDFILE) || return 1 | |
} | |
case "$1" in | |
start) | |
log_daemon_msg "Starting $DESC" "$NAME" | |
do_start | |
log_end_msg $? | |
;; | |
stop) | |
log_daemon_msg "Stopping $DESC" "$NAME" | |
do_stop | |
log_end_msg $? | |
;; | |
reload) | |
log_daemon_msg "Reloading $DESC" "$NAME" | |
do_reload | |
log_end_msg $? | |
;; | |
status) | |
status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? | |
;; | |
restart|force-reload) | |
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: $0 {start|stop|status|restart|force-reload}" >&2 | |
exit 3 | |
;; | |
esac | |
: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi. I'm sorry, I speak Spanish.
I have a problem with the boot script.
I have noticed that that uses the path in / usr / bin, but when I do "sudo make install" it sends me the / usr / local / bin path, and I had to change it in the script.