Skip to content

Instantly share code, notes, and snippets.

@markcaudill
Created March 28, 2015 19:18
Show Gist options
  • Select an option

  • Save markcaudill/e243a8dd0f9e7b8a22d8 to your computer and use it in GitHub Desktop.

Select an option

Save markcaudill/e243a8dd0f9e7b8a22d8 to your computer and use it in GitHub Desktop.

Revisions

  1. markcaudill created this gist Mar 28, 2015.
    118 changes: 118 additions & 0 deletions btsync
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,118 @@
    #!/bin/bash
    #
    # btsync Start up the btsync server daemon
    #
    # chkconfig: 2345 55 25
    # description: btsync is like this sync thing. Google it.
    #
    # processname: btsync
    # config: /etc/btsync.conf
    # pidfile: /var/run/btync/btsync.pid

    ### BEGIN INIT INFO
    # Provides: btsync
    # Required-Start: $local_fs $network $syslog
    # Required-Stop: $local_fs $syslog
    # Should-Start: $syslog
    # Should-Stop: $network $syslog
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Start up the btsync server daemon
    # Description: look above
    ### END INIT INFO

    # source function library
    . /etc/rc.d/init.d/functions

    RETVAL=0
    prog="btsync"
    lockfile=/var/lock/subsys/$prog

    # Some functions to make the below more readable
    BTSYNC=/usr/local/bin/btsync
    CONFIG=/etc/btsync.conf
    PID_FILE=/var/run/btsync/btsync.pid # Make sure this matches the directive in $CONFIG

    runlevel=$(set -- $(runlevel); eval "echo \$$#" )

    start()
    {
    [ -x $BTSYNC ] || exit 5
    [ -f $CONFIG ] || exit 6

    echo -n $"Starting $prog: "
    su - btsync -c "$BTSYNC --config $CONFIG" && success || failure
    RETVAL=$?
    [ $RETVAL -eq 0 ] && touch $lockfile
    echo
    return $RETVAL
    }

    stop()
    {
    echo -n $"Stopping $prog: "
    killproc -p $PID_FILE $BTSYNC
    RETVAL=$?
    # if we are in halt or reboot runlevel kill all running sessions
    # so the TCP connections are closed cleanly
    if [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then
    trap '' TERM
    killall $prog 2>/dev/null
    trap TERM
    fi
    [ $RETVAL -eq 0 ] && rm -f $lockfile
    echo
    }

    reload()
    {
    echo -n $"Reloading $prog: "
    killproc -p $PID_FILE $BTSYNC -HUP
    RETVAL=$?
    echo
    }

    restart() {
    stop
    start
    }

    force_reload() {
    restart
    }

    rh_status() {
    status -p $PID_FILE btsync
    }

    rh_status_q() {
    rh_status >/dev/null 2>&1
    }

    case "$1" in
    start)
    rh_status_q && exit 0
    start
    ;;
    stop)
    if ! rh_status_q; then
    rm -f $lockfile
    exit 0
    fi
    stop
    ;;
    restart)
    restart
    ;;
    status)
    rh_status
    RETVAL=$?
    if [ $RETVAL -eq 3 -a -f $lockfile ] ; then
    RETVAL=2
    fi
    ;;
    *)
    echo $"Usage: $0 {start|stop|restart|status}"
    RETVAL=2
    esac
    exit $RETVAL