Skip to content

Instantly share code, notes, and snippets.

@jamesramsay
Forked from gregwym/init.d.homebridge.sh
Created April 22, 2020 06:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jamesramsay/9aef61122b99d204ef695bb127d8af7d to your computer and use it in GitHub Desktop.
Save jamesramsay/9aef61122b99d204ef695bb127d8af7d to your computer and use it in GitHub Desktop.
Homebridge init.d script
#!/bin/sh
### BEGIN INIT INFO
# Provides: homebridge
# Required-Start: $network $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Description: HomeKit support for the impatient
### END INIT INFO
# -*- coding: utf-8 -*-
set -e
DAEMON=/usr/local/bin/homebridge
PARAMS=""
NAME=homebridge
DAEMONUSER=homebridge
PIDDIR=/var/run/homebridge
PIDFILE=$PIDDIR/pid
DESC="HomeKit support for the impatient"
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
start_it_up()
{
if [ ! -d $PIDDIR ]; then
mkdir -p $PIDDIR
chown $DAEMONUSER $PIDDIR
chgrp $DAEMONUSER $PIDDIR
fi
if ! mountpoint -q /proc/ ; then
log_failure_msg "Can't start $DESC - /proc is not mounted"
return
fi
if [ -e $PIDFILE ]; then
if $0 status > /dev/null ; then
log_success_msg "$DESC already started; not starting."
return
else
log_success_msg "Removing stale PID file $PIDFILE."
rm -f $PIDFILE
fi
fi
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --quiet --chuid $DAEMONUSER --pidfile $PIDFILE \
--background --make-pidfile --exec $DAEMON -- $PARAMS
log_end_msg $?
}
shut_it_down()
{
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --retry 5 --quiet --oknodo --pidfile $PIDFILE \
--remove-pidfile --user $DAEMONUSER
log_end_msg $?
rm -f $PIDFILE
}
case "$1" in
start)
start_it_up
;;
stop)
shut_it_down
;;
restart)
shut_it_down
start_it_up
;;
status)
status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|status}" >&2
exit 2
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment