#!/bin/sh ### BEGIN INIT INFO # Provides: fiverp # Required-Start: $network mariadb # Default-Start: 2 3 4 5 # Short-Description: FiveRP (FXServer) ### END INIT INFO NAME=fiverp DIR=/opt/fivem LOG=/opt/fivem/logs/server.log SUPPID=/run/$NAME.sup.pid CHILDPID=/run/$NAME.child.pid status() { if [ -f $CHILDPID ] && kill -0 "$(cat $CHILDPID)" 2>/dev/null; then echo "$NAME running (pid $(cat $CHILDPID))"; return 0 fi echo "$NAME not running"; return 3 } start() { if status >/dev/null 2>&1; then echo "$NAME already running"; return 0; fi service mariadb start >/dev/null 2>&1 i=0 while ! mysqladmin ping >/dev/null 2>&1; do i=$((i+1)); [ $i -gt 30 ] && echo "warning: mariadb did not come up" && break sleep 1 done setsid $DIR/bin/run-server.sh $NAME $DIR $LOG >/dev/null 2>&1 < /dev/null & sleep 2 echo "$NAME started" } stop() { [ -f $SUPPID ] && kill -TERM "$(cat $SUPPID)" 2>/dev/null [ -f $CHILDPID ] && kill -TERM "$(cat $CHILDPID)" 2>/dev/null sleep 2 [ -f $CHILDPID ] && kill -9 "$(cat $CHILDPID)" 2>/dev/null rm -f $SUPPID $CHILDPID echo "$NAME stopped" } case "$1" in start) start ;; stop) stop ;; restart) stop; start ;; status) status ;; *) echo "usage: $0 {start|stop|restart|status}"; exit 1 ;; esac