drone.ioをstart-stop-daemonを使って起動制御した


備忘のためにメモを残します。
debパッケージとか使えば、こういうの書かなくてよかったかなー、と思いつつstart-stop-daemon書いたことなかったのと、こういうちまちましたのが好きなので用意しました。

droneは、GitHubのcommitリビジョン[462a44d0cf4c59e3bc01255d9a2a1d8b2c4bf33f]でビルドしました。

/etc/init.d/drone.sh

#!/bin/bash

source /etc/profile.d/drone.sh
source /root/.bashrc
export GIN_MODE=release

PID=/var/run/drone.pid
NAME=drone
DRONE_HOME=${droneをソースコードからビルドした場所}

case "$1" in
  start)
    echo "starting $NAME";
    start-stop-daemon --start --background --exec $DRONE_HOME/drone  --make-pidfile --pidfile "$PID"
    echo "$NAME was successfully started!"
    ;;
  stop)
    echo "stopping " "$NAME"
    start-stop-daemon --stop --oknodo --signal TERM --pidfile "$PID"
    echo "$NAME was stopped..."
    ;;
  status)
    start-stop-daemon --status --pidfile "$PID"
    if [ $? = 1 ]; then
        echo "drone is not runnning..."
    else
        echo "drone is runnning!"
    fi
    ;;
  restart)
    $0 stop
    $0 start
    ;;
  *)
    echo "Usage: gf {start|stop|restart|status}"
    exit 1
esac

exit 0