aboutsummaryrefslogtreecommitdiffhomepage
path: root/support/init.d
diff options
context:
space:
mode:
authorRigel Kent <sendmemail@rigelk.eu>2018-05-13 10:38:23 +0200
committerChocobozzz <me@florianbigard.com>2018-05-13 16:30:05 +0200
commit48d46d81af93d0912022e96958f131c5f8acdfc2 (patch)
treed50e9910eace391eccbbe7bf91ea661894df2643 /support/init.d
parent82ddca10b70864f0f313301a2ed3880b22574ce3 (diff)
downloadPeerTube-48d46d81af93d0912022e96958f131c5f8acdfc2.tar.gz
PeerTube-48d46d81af93d0912022e96958f131c5f8acdfc2.tar.zst
PeerTube-48d46d81af93d0912022e96958f131c5f8acdfc2.zip
SysVinit script
Diffstat (limited to 'support/init.d')
-rw-r--r--support/init.d/peertube173
1 files changed, 173 insertions, 0 deletions
diff --git a/support/init.d/peertube b/support/init.d/peertube
new file mode 100644
index 000000000..4473fc0ea
--- /dev/null
+++ b/support/init.d/peertube
@@ -0,0 +1,173 @@
1#!/bin/sh
2
3APP_NAME="peertube"
4USER="peertube"
5GROUP="peertube"
6NODE_ENV="production"
7APP_DIR="/var/www/peertube"
8NODE_APP="dist/server"
9KWARGS=""
10CONFIG_DIR="/etc/peertube"
11PID_DIR="$APP_DIR/pid"
12PID_FILE="$PID_DIR/$APP_NAME.pid"
13LOG_DIR="/var/log/peertube"
14LOG_FILE="$LOG_DIR/$APP_NAME.log"
15NODE_EXEC=$(which node)
16
17###############
18
19# REDHAT chkconfig header
20
21# chkconfig: - 58 74
22# description: peertube service script.
23### BEGIN INIT INFO
24# Provides: peertube
25# Required-Start: $network $remote_fs $local_fs
26# Required-Stop: $network $remote_fs $local_fs
27# Default-Start: 2 3 4 5
28# Default-Stop: 0 1 6
29# Short-Description: start and stop peertube
30# Description: Node process for peertube
31### END INIT INFO
32
33###############
34
35USAGE="Usage: $0 {start|stop|restart|status} [--force]"
36FORCE_OP=false
37
38pid_file_exists() {
39 [ -f "$PID_FILE" ]
40}
41
42get_pid() {
43 echo "$(cat "$PID_FILE")"
44}
45
46is_running() {
47 PID="$(get_pid)"
48 [ -d /proc/$PID ]
49}
50
51start_it() {
52 mkdir -p "$PID_DIR"
53 chown $USER:$GROUP "$PID_DIR"
54 mkdir -p "$LOG_DIR"
55 chown $USER:$GROUP "$LOG_DIR"
56
57 echo "Starting $APP_NAME ..."
58 echo "cd $APP_DIR && NODE_ENV=$NODE_ENV NODE_CONFIG_DIR=$CONFIG_DIR $NODE_EXEC $APP_DIR/$NODE_APP $KWARGS 1>$LOG_FILE 2>&1 & echo \$! > $PID_FILE" | sudo -i -u $USER
59 echo "$APP_NAME started with pid $(get_pid)"
60}
61
62stop_process() {
63 PID=$(get_pid)
64 echo "Killing process $PID"
65 pkill -P $PID
66}
67
68remove_pid_file() {
69 echo "Removing pid file"
70 rm -f "$PID_FILE"
71}
72
73start_app() {
74 if pid_file_exists
75 then
76 if is_running
77 then
78 PID=$(get_pid)
79 echo "$APP_NAME already running with pid $PID"
80 exit 1
81 else
82 echo "$APP_NAME stopped, but pid file exists"
83 if [ $FORCE_OP = true ]
84 then
85 echo "Forcing start anyways"
86 remove_pid_file
87 start_it
88 fi
89 fi
90 else
91 start_it
92 fi
93}
94
95stop_app() {
96 if pid_file_exists
97 then
98 if is_running
99 then
100 echo "Stopping $APP_NAME ..."
101 stop_process
102 remove_pid_file
103 echo "$APP_NAME stopped"
104 else
105 echo "$APP_NAME already stopped, but pid file exists"
106 if [ $FORCE_OP = true ]
107 then
108 echo "Forcing stop anyways ..."
109 remove_pid_file
110 echo "$APP_NAME stopped"
111 else
112 exit 1
113 fi
114 fi
115 else
116 echo "$APP_NAME already stopped, pid file does not exist"
117 exit 1
118 fi
119}
120
121status_app() {
122 if pid_file_exists
123 then
124 if is_running
125 then
126 PID=$(get_pid)
127 echo "$APP_NAME running with pid $PID"
128 else
129 echo "$APP_NAME stopped, but pid file exists"
130 fi
131 else
132 echo "$APP_NAME stopped"
133 fi
134}
135
136case "$2" in
137 --force)
138 FORCE_OP=true
139 ;;
140
141 "")
142 ;;
143
144 *)
145 echo $USAGE
146 exit 1
147 ;;
148esac
149
150case "$1" in
151 start)
152 start_app
153 ;;
154
155 stop)
156 stop_app
157 ;;
158
159 restart)
160 stop_app
161 start_app
162 ;;
163
164 status)
165 status_app
166 ;;
167
168 *)
169 echo $USAGE
170 exit 1
171 ;;
172esac
173