summaryrefslogtreecommitdiff
path: root/docs/src/System-Deployment/SysV-Style.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/src/System-Deployment/SysV-Style.md')
-rw-r--r--docs/src/System-Deployment/SysV-Style.md76
1 files changed, 76 insertions, 0 deletions
diff --git a/docs/src/System-Deployment/SysV-Style.md b/docs/src/System-Deployment/SysV-Style.md
new file mode 100644
index 0000000..565b399
--- /dev/null
+++ b/docs/src/System-Deployment/SysV-Style.md
@@ -0,0 +1,76 @@
+title: Deploying Ponzu on Linux with System-V style init
+
+For reference, here is an example init script to run Ponzu servers. You must
+define the `PROJECT_DIR` & `RUNAS` variables by replacing `<PROJECT DIRECTORY>`
+& `<USER>` in the script below:
+
+```bash
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides: ponzu-server
+# Required-Start: $local_fs $network $named $time $syslog
+# Required-Stop: $local_fs $network $named $time $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Description: Ponzu API & Admin server
+### END INIT INFO
+
+PROJECT_DIR=<PROJECT DIRECTORY>
+SCRIPT='cd $PROJECT_DIR && ponzu run --port=80' # add --https here to get TLS/HTTPS
+RUNAS=<USER>
+
+PIDFILE=/var/run/ponzu-server.pid
+LOGFILE=/var/log/ponzu-server.log
+
+start() {
+ if [ -f /var/run/$PIDNAME ] && kill -0 $(cat /var/run/$PIDNAME); then
+ echo 'Service already running' >&2
+ return 1
+ fi
+ echo 'Starting service…' >&2
+ local CMD="$SCRIPT &> \"$LOGFILE\" & echo \$!"
+ su -c "$CMD" $RUNAS > "$PIDFILE"
+ echo 'Service started' >&2
+}
+
+stop() {
+ if [ ! -f "$PIDFILE" ] || ! kill -0 $(cat "$PIDFILE"); then
+ echo 'Service not running' >&2
+ return 1
+ fi
+ echo 'Stopping service…' >&2
+ kill -15 $(cat "$PIDFILE") && rm -f "$PIDFILE"
+ echo 'Service stopped' >&2
+}
+
+uninstall() {
+ echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] "
+ local SURE
+ read SURE
+ if [ "$SURE" = "yes" ]; then
+ stop
+ rm -f "$PIDFILE"
+ echo "Notice: log file is not be removed: '$LOGFILE'" >&2
+ update-rc.d -f <NAME> remove
+ rm -fv "$0"
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ uninstall)
+ uninstall
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|uninstall}"
+esac
+``` \ No newline at end of file