#!/bin/sh ### BEGIN INIT INFO # Provides: fivem # Required-Start: $network mariadb # Default-Start: 2 3 4 5 # Short-Description: Los Santos RP FXServer ### END INIT INFO NAME=fivem DATA=/opt/fivem/data SERVER=/opt/fivem/server 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 # the database has to answer before resources start querying it 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 cd $DATA || exit 1 setsid /opt/fivem/bin/supervise.sh "$NAME" "$LOG" \ $SERVER/run.sh +set citizen_dir $SERVER/alpine/opt/cfx-server/citizen/ \ +exec $DATA/server.cfg >/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