Skip to content

Instantly share code, notes, and snippets.

@bennet0496
Created November 10, 2014 18:11
Show Gist options
  • Save bennet0496/a40070a1e2a2a14ed44a to your computer and use it in GitHub Desktop.
Save bennet0496/a40070a1e2a2a14ed44a to your computer and use it in GitHub Desktop.
ProCon Linux Wrapper
#!/bin/bash
### BEGIN INIT INFO
# Provides: procon
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ProCon-Layer Server
# Description: Starts ProCon-Layer Server
### END INIT INFO
NAME="PRoCon Layer"
USER="procon"
BINARYPATH="/home/procon"
BINARYNAME="PRoCon.Console.exe"
PIDFILE="procon.pid"
OPTS="-maxservers 2"
cd "$BINARYPATH"
asuser(){
if [ "`whoami`" = "$USER" ];then
eval "$@"
else
# /bin/su $USER -c "$@"
sudo -u $USER $@
fi
}
running() {
if [ -n "`pgrep -xF $PIDFILE 2> /dev/null`" ]; then
return 0
else
return 1
fi
}
start() {
if ! running; then
echo -n "Starting the $NAME server... "
#asuser "/usr/bin/screen -dmS $SCREENREF /usr/bin/mono $BINARYPATH/$BINARYNAME $OPTS"
cd $BINARYPATH
asuser mono-service2 -l:./$PIDFILE PRoCon.Service.exe
#pgrep -f $SCREENREF > $PIDFILE
sleep 2
if [ -s "$BINARYPATH/$PIDFILE" ]; then
echo "Done"
else
echo "Failed"
rm $PIDFILE
fi
else
echo "The $NAME server is already started."
fi
}
stop() {
if running; then
echo -n "Stopping the $NAME server... "
pkill -xF $PIDFILE
while running; do
sleep 1
done
rm $PIDFILE
echo "Done"
else
echo "The $NAME server is already stopped."
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
if running; then
echo "The $NAME server is started."
else
echo "The $NAME server is stopped."
fi
;;
*)
echo "Usage: $0 (start|stop|restart|status)"
exit 1
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment