diff options
Diffstat (limited to 'docs/src/System-Deployment/SysV-Style.md')
-rw-r--r-- | docs/src/System-Deployment/SysV-Style.md | 76 |
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 |