mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-28 10:02:43 +01:00
f5ff7ccd07
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
100 lines
2.4 KiB
Bash
100 lines
2.4 KiB
Bash
#!/bin/sh
|
|
# rc.etherpad-lite
|
|
# Initscript that manages an instance of etherpad-Lite running on Slackware Linux.
|
|
#
|
|
# Author: Luke Williams ( xocel@iquidus.org )
|
|
# License: WTFPL <http://sam.zoy.org/wtfpl/COPYING>
|
|
|
|
USER="etherpad"
|
|
HOMEDIR="/var/etherpad-lite"
|
|
LOGDIR="/var/log/etherpad-lite"
|
|
PIDFILE="/var/run/etherpad-lite.pid"
|
|
|
|
etherpad_start() {
|
|
echo "Starting Etherpad lite..."
|
|
# Launch etherpads run.sh script
|
|
/bin/su -l -c "$HOMEDIR/bin/run.sh -s /etc/etherpad-lite/settings.json >> $LOGDIR/etherpad.log 2>> $LOGDIR/error.log &" $USER
|
|
# Determine and store PID. In order for this to work sucessfully
|
|
# the node.js server needs to have finished launching, normally
|
|
# waiting 5 seconds is enough but in some situations (first launch
|
|
# after install for example) it can take a while longer.
|
|
PID='' # Process ID
|
|
COUNT=0 # Count attempts at determining the Process ID
|
|
TIMEOUT=9 # Number of failed attempts before exiting, default:9 (9x5=45seconds)
|
|
while [ -z "$PID" ]; do
|
|
# We don't want anyones boot process hanging here if this
|
|
# script is started on boot and etherpad is unable to lanuch.
|
|
# So exit out if etherpad appears to be failing to start.
|
|
if [ $COUNT -eq $TIMEOUT ]; then
|
|
echo "Unable to start Etherpad lite.."
|
|
cat $LOGDIR/etherpad.log | tail -n 5
|
|
rm -f "$PIDFILE"
|
|
exit 1
|
|
fi
|
|
# Wait for node.js server to start up
|
|
sleep 5
|
|
# Store the PID
|
|
ps ax | grep [s]erver.js | awk '{print $1}' > "$PIDFILE"
|
|
# Check PID was written
|
|
PID=`cat $PIDFILE 2>/dev/null`
|
|
COUNT=$(($COUNT+1))
|
|
done
|
|
echo "Running."
|
|
}
|
|
|
|
etherpad_stop() {
|
|
echo "Stopping Etherpad lite..."
|
|
PID=`cat $PIDFILE 2>/dev/null`
|
|
if [ -z "$PID" ]; then
|
|
echo " not running."
|
|
elif kill -15 $PID; then
|
|
echo " stopped."
|
|
rm -f "$PIDFILE"
|
|
else
|
|
sleep 1
|
|
if kill -9 $PID; then
|
|
echo " killed."
|
|
rm -f "$PIDFILE"
|
|
else
|
|
echo " error!"
|
|
exit 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
etherpad_status() {
|
|
PID=`cat $PIDFILE 2>/dev/null`
|
|
if [ -z "$PID" ]; then
|
|
echo "Not running."
|
|
exit 1
|
|
elif kill -0 $PID; then
|
|
echo "Running."
|
|
exit 0
|
|
else
|
|
echo "PID file $PIDFILE present but PID $PID is not running."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
etherpad_start
|
|
;;
|
|
|
|
stop)
|
|
etherpad_stop
|
|
;;
|
|
|
|
restart)
|
|
etherpad_stop
|
|
sleep 3
|
|
etherpad_start
|
|
;;
|
|
|
|
status)
|
|
etherpad_status
|
|
;;
|
|
|
|
*)
|
|
echo "Usage $0 (start|stop|restart|status)"
|
|
esac
|