Skip to content

Instantly share code, notes, and snippets.

@bramus
Created November 11, 2013 11:23
Show Gist options
  • Select an option

  • Save bramus/7411782 to your computer and use it in GitHub Desktop.

Select an option

Save bramus/7411782 to your computer and use it in GitHub Desktop.

Revisions

  1. bramus created this gist Nov 11, 2013.
    56 changes: 56 additions & 0 deletions myservice
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    #! /bin/sh

    # Installation
    # - Move this to /etc/init.d/myservice
    # - chmod +x this
    #
    # Starting and stopping
    # - Start: `service myservice start` or `/etc/init.d/myservice start`
    # - Stop: `service myservice stop` or `/etc/init.d/myservice stop`

    #ref http://till.klampaeckel.de/blog/archives/94-start-stop-daemon,-Gearman-and-a-little-PHP.html
    #ref http://unix.stackexchange.com/questions/85033/use-start-stop-daemon-for-a-php-server/85570#85570
    #ref http://serverfault.com/questions/229759/launching-a-php-daemon-from-an-lsb-init-script-w-start-stop-daemon

    NAME=myservice
    DESC="Daemon for my magnificent PHP CLI script"
    PIDFILE="/var/run/${NAME}.pid"
    LOGFILE="/var/log/${NAME}.log"

    DAEMON="/usr/bin/php"
    DAEMON_OPTS="/path/to/your/php/script.php"

    START_OPTS="--start --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ${DAEMON_OPTS}"
    STOP_OPTS="--stop --pidfile ${PIDFILE}"

    test -x $DAEMON || exit 0

    set -e

    case "$1" in
    start)
    echo -n "Starting ${DESC}: "
    start-stop-daemon $START_OPTS >> $LOGFILE
    echo "$NAME."
    ;;
    stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon $STOP_OPTS
    echo "$NAME."
    rm -f $PIDFILE
    ;;
    restart|force-reload)
    echo -n "Restarting $DESC: "
    start-stop-daemon $STOP_OPTS
    sleep 1
    start-stop-daemon $START_OPTS >> $LOGFILE
    echo "$NAME."
    ;;
    *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
    esac

    exit 0