From 1482bd8fb4d03f07db0d1a7f60d752357140a91f Mon Sep 17 00:00:00 2001
From: jack <ac861219@gmail.com>
Date: Mon, 12 May 2014 13:20:13 +0800
Subject: [PATCH] add supervisor support and script, easy to use.

just like ./gogs_supervisord.sh start
./gogs_supervisord.sh stop
./gogs_supervisord.sh restart
and logs all saved tmp folder
---
 etc/supervisord.conf | 26 ++++++++++++++++++++++++++
 gogs_supervisord.sh  | 35 +++++++++++++++++++++++++++++++++++
 tmp/readme.txt       |  1 +
 3 files changed, 62 insertions(+)
 create mode 100644 etc/supervisord.conf
 create mode 100644 gogs_supervisord.sh
 create mode 100644 tmp/readme.txt

diff --git a/etc/supervisord.conf b/etc/supervisord.conf
new file mode 100644
index 0000000000..e273af3271
--- /dev/null
+++ b/etc/supervisord.conf
@@ -0,0 +1,26 @@
+[unix_http_server]
+file=/tmp/supervisor.sock                       ; path to your socket file
+
+[supervisord]
+logfile=tmp/supervisord.log                    ; supervisord log file
+logfile_maxbytes=50MB                           ; maximum size of logfile before rotation
+logfile_backups=10                              ; number of backed up logfiles
+loglevel=warn                                   ; info, debug, warn, trace
+pidfile=tmp/supervisord.pid                    ; pidfile location
+nodaemon=false                                  ; run supervisord as a daemon
+minfds=1024                                     ; number of startup file descriptors
+minprocs=200                                    ; number of process descriptors
+user=root                                       ; default user
+childlogdir=tmp
+
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///tmp/supervisor.sock           ; use a unix:// URL  for a unix socket
+
+[program:gogs]
+command = /root/Developer/gopath/src/github.com/gogits/gogs/start.sh	; here must be the real url, not ~ or $GOROOT like 
+autostart = true
+stdout_logfile = tmp/gogs-stderr.log
+stderr_logfile = tmp/gogs-error.log
\ No newline at end of file
diff --git a/gogs_supervisord.sh b/gogs_supervisord.sh
new file mode 100644
index 0000000000..fb8b9b53a6
--- /dev/null
+++ b/gogs_supervisord.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+PID="tmp/supervisord.pid"
+CONF="etc/supervisord.conf"
+
+stop() {
+    if [ -f $PID ]; then
+        kill `cat -- $PID`
+        rm -f -- $PID
+        echo "stopped"
+    fi
+}
+
+start() {
+    echo "starting"
+    if [ ! -f $PID ]; then
+        supervisord -c $CONF
+        echo "started"
+    fi
+}
+
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        start
+        ;;
+    *)
+        echo "Usage: $0 {start|stop|restart}"
+esac
\ No newline at end of file
diff --git a/tmp/readme.txt b/tmp/readme.txt
new file mode 100644
index 0000000000..21984192e9
--- /dev/null
+++ b/tmp/readme.txt
@@ -0,0 +1 @@
+here is log for supervisord and gogs
\ No newline at end of file