Compare commits
1 Commits
master
...
cs2-docker
| Author | SHA1 | Date | |
|---|---|---|---|
| 57a9c419e9 |
32
Dockerfile
Normal file
32
Dockerfile
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
FROM debian:bookworm-slim
|
||||||
|
|
||||||
|
LABEL author="Makaren0" maintainer="Makaffe@hotmail.com"
|
||||||
|
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
ENV DEBCONF_NOWARNINGS="yes"
|
||||||
|
|
||||||
|
RUN apt update; apt upgrade -y\
|
||||||
|
&& dpkg --add-architecture i386 \
|
||||||
|
&& apt install -y unzip curl wget tar gzip python3 ca-certificates
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get clean \
|
||||||
|
&& apt-get autoremove
|
||||||
|
|
||||||
|
RUN apt-get install -y lib32gcc-s1 libicu-dev
|
||||||
|
|
||||||
|
RUN apt --fix-broken install \
|
||||||
|
&& apt-get update \
|
||||||
|
&& apt-get upgrade -y \
|
||||||
|
&& dpkg --configure -a \
|
||||||
|
&& apt-get install -f
|
||||||
|
|
||||||
|
RUN adduser --disabled-password --home /home/container container
|
||||||
|
USER container
|
||||||
|
ENV USER=container HOME=/home/container
|
||||||
|
|
||||||
|
WORKDIR /home/container
|
||||||
|
|
||||||
|
COPY ./entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "/entrypoint.sh"]
|
||||||
354
entrypoint.sh
Normal file
354
entrypoint.sh
Normal file
|
|
@ -0,0 +1,354 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Advertencia: El script podría no estar preparado para producción, si este es su caso, siéntase libre de editar el script según sus requisitos.
|
||||||
|
# Advertencia: No se recomienda ejecutar este script como root.
|
||||||
|
# Assembled by: Makaren0
|
||||||
|
|
||||||
|
|
||||||
|
echo -e "╔═════════════════════╗"
|
||||||
|
echo -e "║ EntryPoint.sh ║"
|
||||||
|
echo -e "╚═════════════════════╝\n"
|
||||||
|
|
||||||
|
|
||||||
|
# VARIABLES DE CONFIGURACION #
|
||||||
|
#1.Configuración cuentas steam
|
||||||
|
# steamcmd esta alojado en el directorio principal del usuario que ejecuta el script
|
||||||
|
STEAM_ACCOUNT="anonymous" # For security reasons, it is recommended that you create a new Steam account just for your dedicated servers.
|
||||||
|
STEAM_PSW="" # Leave it blank to disable
|
||||||
|
STEAM_GUARD="" # Steam guard code for first login
|
||||||
|
GSLT_TOKEN="E28A6DFBF5961B7C6DCB439E420728A1" # Necesario para mostrar el server en la lista publica Note:Valve sais cs2 generate automatically
|
||||||
|
|
||||||
|
#2.Configuración del juego
|
||||||
|
SERVER_IP="" # Sobreescribe las configuraciones desde Pterodactyl
|
||||||
|
SERVER_PORT="" # Sobreescribe las configuraciones desde Pterodactyl
|
||||||
|
MAX_PLAYERS="20"
|
||||||
|
DEFAULT_START_MAP="de_nuke" # Deshabilitado si se usan mapas de la workshop
|
||||||
|
WORKSHOP_START_MAP="" # https://steamcommunity.com/sharedfiles/filedetails/?id=125488374
|
||||||
|
|
||||||
|
UPDATE_ON_BOOT="1" # Actualiza el servidor mediante steamcmd ANTES de descargar cualquier otro externo. Usa 1 para activarlo, cualquier otra cosa para desactivarlo
|
||||||
|
VAC="1" # Habilita el uso de VAC en el servidor. Usa 1 para activarlo, cualquier otra cosa para desactivarlo
|
||||||
|
SRCDS_DEBUG="0" # Habilita -debug en los argumentos de srcds
|
||||||
|
METAMOD="0"
|
||||||
|
|
||||||
|
LAUNCH_ARGS="-dedicated +ip ${SERVER_IP} -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS}"
|
||||||
|
EXTRA_ARGS=""
|
||||||
|
|
||||||
|
# API_AUTHORIZATION_KEY="" #https://steamcommunity.com/dev/apikey
|
||||||
|
# WORKSHOP_COLLECTION_ID="" #https://steamcommunity.com/sharedfiles/filedetails/?id=125499818
|
||||||
|
|
||||||
|
# Workshop maps. More info: https://developer.valvesoftware.com/wiki/CSGO_Workshop_For_Server_Operators
|
||||||
|
# CSGO OLD - EXTRAPARAMS="-nohltv +sv_pure 0 +game_type 0 +game_mode 0" # Puedes usar -autoupdate en los argumentos para actualizar automaticamente el servidor
|
||||||
|
# CSGO OLD - LAUNCH_ARGS="-nobreakpad -game csgo -console -usercon -secure -maxplayers_override ${MAX_PLAYERS} -tickrate ${TICKRATE} +sv_setsteamaccount ${GSLT_TOKEN} -net_port_try 1 +net_public_adr ${IP} +hostport ${PORT} ${EXTRAPARAMS}"
|
||||||
|
# AUTO_UPDATE="1" # Se refiere a la comprobación que hace el juego MIENTRAS esta corriendo para actualizar el servidor automaticamente. Usa 1 para activarlo, cualquier otra cosa para desactivarlo
|
||||||
|
# TICKRATE="64"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# # # # # # # #
|
||||||
|
# SCRIPT INIT #
|
||||||
|
# # # # # # # #
|
||||||
|
APP_ID="730"
|
||||||
|
SCREEN_NAME="CS2-SERVER-PRACTICE"
|
||||||
|
RUNSCRIPT_USER=$USER # Se puede usar cualquier usuario sin privilegios de administrador. En este caso al estar utilizando un servicio de Linux directamente obtendremos la variable de entorno $USER
|
||||||
|
SERVER_DIR=$PWD
|
||||||
|
SRCDS_RUN="$SERVER_DIR/game/bin/linuxsteamrt64/cs2"
|
||||||
|
|
||||||
|
# Define la ubicación del archivo de registro de screen
|
||||||
|
# Define alojamiento de backups
|
||||||
|
LOG_FILE="$SERVER_DIR/screen-log-gameserver.log"
|
||||||
|
BACKUP="1" # Backups sobre la configuracion y plugins de Source Mods
|
||||||
|
BACKUP_DIR="$SERVER_DIR/backups" # Directorio de las backups de plugins y configuraciones de SourceMod
|
||||||
|
MAX_BACKUPS="10"
|
||||||
|
|
||||||
|
|
||||||
|
# Comprobar parametros desde Pterodactyl
|
||||||
|
if [[ ! -z $P_STEAM_ACCOUNT ]]; then
|
||||||
|
STEAM_ACCOUNT=$P_STEAM_ACCOUNT
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_STEAM_ACCOUNT ]]; then
|
||||||
|
STEAM_ACCOUNT=$P_STEAM_ACCOUNT
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_STEAM_GUARD ]]; then
|
||||||
|
STEAM_GUARD=$P_STEAM_GUARD
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_STEAM_PSW ]]; then
|
||||||
|
STEAM_PSW=$P_STEAM_PSW
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_MAX_PLAYERS ]]; then
|
||||||
|
MAX_PLAYERS=$P_MAX_PLAYERS
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_GSLT_TOKEN ]]; then
|
||||||
|
GSLT_TOKEN=$P_GSLT_TOKEN
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_VAC ]]; then
|
||||||
|
VAC=$P_VAC
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_UPDATE_ON_BOOT ]]; then
|
||||||
|
UPDATE_ON_BOOT=$P_UPDATE_ON_BOOT
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_SRCDS_DEBUG ]]; then
|
||||||
|
SRCDS_DEBUG=$P_SRCDS_DEBUG
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_EXTRA_ARGS ]]; then
|
||||||
|
EXTRA_ARGS=$P_EXTRA_ARGS
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_SERVER_IP ]]; then
|
||||||
|
SERVER_IP=$P_SERVER_IP
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_SERVER_PORT ]]; then
|
||||||
|
SERVER_PORT=$P_SERVER_PORT
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_METAMOD ]]; then
|
||||||
|
METAMOD=$P_METAMOD
|
||||||
|
fi
|
||||||
|
if [[ ! -z $P_WORKSHOP_START_MAP ]]; then
|
||||||
|
WORKSHOP_START_MAP=$P_WORKSHOP_START_MAP
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Componer el nuevo argumento de lanzamiento combinado desde Pterodactyl, para que de alguna manera puedan interpretarse a la vez, tanto desde este script como Pterodactyl
|
||||||
|
if [[ ! -z $STARTUP ]]; then
|
||||||
|
LAUNCH_ARGS="$STARTUP +ip ${SERVER_IP} -port ${SERVER_PORT} -maxplayers ${MAX_PLAYERS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Añadir los parametros de lanzamiento extra
|
||||||
|
if [[ ! -z $EXTRA_ARGS ]]; then
|
||||||
|
LAUNCH_ARGS=$LAUNCH_ARGS $EXTRA_ARGS
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Comprobar si existe un directorio home adecuado
|
||||||
|
if [ ! -d "$HOME" ]; then
|
||||||
|
echo "No se puede encontrar o no se tienen permisos en la carpeta principal home del usuario: $USER"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
if [ ! -w "$HOME" ] || [ ! -r "$HOME" ]; then
|
||||||
|
echo "No se tienen permisos de lectura o escritura dentro del directorio home del usuario: $USER"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Comprobar si existe el directorio principal donde se ejecuta el juego y alcanzarlo
|
||||||
|
if [ ! -d "$SERVER_DIR" ]; then
|
||||||
|
# Si el directorio no existe, crearlo
|
||||||
|
mkdir -p "$GAME_DIR"
|
||||||
|
echo "Se ha creado el directorio $GAME_DIR"
|
||||||
|
fi
|
||||||
|
cd $SERVER_DIR
|
||||||
|
|
||||||
|
# SteamCMD Descarga e instala steamcmd si no existe.
|
||||||
|
STEAMCMD_DIR="$HOME/steamcmd"
|
||||||
|
if [ ! -d "$STEAMCMD_DIR" ]; then
|
||||||
|
echo "|> NO SE HA ENCONTRADO STEAMCMD. Descargando e instalando steamcmd..."
|
||||||
|
mkdir -p "$STEAMCMD_DIR"
|
||||||
|
cd "$STEAMCMD_DIR"
|
||||||
|
wget -O "steamcmd_linux.tar.gz" "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz"
|
||||||
|
tar -xvzf steamcmd_linux.tar.gz
|
||||||
|
rm steamcmd_linux.tar.gz
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Crear un script de actualizacion automatica para el servidor
|
||||||
|
# STEAM_RUNSCRIPT="$STEAMCMD_DIR/server_autoupdate_script_${SCREEN_NAME}.txt"
|
||||||
|
# touch "$STEAM_RUNSCRIPT"
|
||||||
|
|
||||||
|
# echo "force_install_dir $SERVER_DIR" > "$STEAM_RUNSCRIPT"
|
||||||
|
# if [ -z "$STEAM_PSW" ]; then
|
||||||
|
# echo "login anonymous" >> "$STEAM_RUNSCRIPT"
|
||||||
|
# else
|
||||||
|
# echo "login $STEAM_ACCOUNT $STEAM_PSW" >> "$STEAM_RUNSCRIPT"
|
||||||
|
# fi
|
||||||
|
# echo "app_update $APP_ID" >> "$STEAM_RUNSCRIPT"
|
||||||
|
# echo "quit" >> "$STEAM_RUNSCRIPT"
|
||||||
|
|
||||||
|
# chown ${USER} "$STEAM_RUNSCRIPT"
|
||||||
|
# chmod 666 "$STEAM_RUNSCRIPT"
|
||||||
|
|
||||||
|
# Lanzar steamcmd para comprobar actualizaciones del cliente
|
||||||
|
$STEAMCMD_DIR/steamcmd.sh +quit
|
||||||
|
|
||||||
|
# Crear enlaces simbolicos para conectar con steamcmdclient desde el usuario
|
||||||
|
mkdir -p ~/.steam/sdk32/
|
||||||
|
mkdir -p ~/.steam/sdk64/
|
||||||
|
rm "$HOME/.steam/sdk32/steamclient.so"
|
||||||
|
ln -s $STEAMCMD_DIR/linux32/steamclient.so ~/.steam/sdk32/steamclient.so # Enlazar los ejecutables de steam al directorio del usuario para actualizar automaticamente (AUTO_UPDATE variable)
|
||||||
|
ln -s $STEAMCMD_DIR/linux64/steamclient.so ~/.steam/sdk64/steamclient.so
|
||||||
|
#ln -s "$STEAMCMD_DIR/linux32/steamcmd" "$STEAMCMD_DIR/linux32/steam" # Esto se hace debido a que Volvo esta completamente loco.
|
||||||
|
#ln -s "$STEAMCMD_DIR/steamcmd.sh" "$STEAMCMD_DIR/steam.sh" # Esto se hace debido a que Volvo esta completamente loco.
|
||||||
|
echo "|> steamcmd completamente instalado"
|
||||||
|
|
||||||
|
|
||||||
|
# # Establecer la actualizacion automatica propia de CS2
|
||||||
|
# if [ "$AUTO_UPDATE" = "1" ]; then
|
||||||
|
# LAUNCH_ARGS="${LAUNCH_ARGS} -autoupdate -steam_dir $STEAMCMD_DIR -steamcmd_script server_autoupdate_script_${SCREEN_NAME}.txt"
|
||||||
|
# echo "|> ACTIVADA Actualizacion propia del juego mediante argumentos"
|
||||||
|
# fi
|
||||||
|
|
||||||
|
# Verificar si se utilizan mapas de la workshop
|
||||||
|
if [ -n "$WORKSHOP_START_MAP" ]; then
|
||||||
|
LAUNCH_ARGS="${LAUNCH_ARGS} +map $DEFAULT_START_MAP +host_workshop_map ${WORKSHOP_START_MAP}"
|
||||||
|
else
|
||||||
|
LAUNCH_ARGS="${LAUNCH_ARGS} +map $DEFAULT_START_MAP"
|
||||||
|
echo "|> No se han definido mapas de la workshop o API. Continuando con ${DEFAULT_START_MAP}..."
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Uso de Valve-Anticheat
|
||||||
|
if [ "$VAC" != "1" ]; then
|
||||||
|
LAUNCH_ARGS="${LAUNCH_ARGS} -insecure"
|
||||||
|
echo "|> VAC Anticheat desativado desde configuracion"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Hacer el uso de debug
|
||||||
|
if [ "$SRCDS_DEBUG" = "1" ]; then
|
||||||
|
LAUNCH_ARGS="${LAUNCH_ARGS} -debug"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Actualiza el servidor de CSGO
|
||||||
|
echo "|> UPDATE on boot server... running steamcmd"
|
||||||
|
cd "$STEAMCMD_DIR"
|
||||||
|
if [ "$UPDATE_ON_BOOT" = "1" ]; then
|
||||||
|
if [ -z "$STEAM_PSW" ]; then
|
||||||
|
./steamcmd.sh +force_install_dir "$SERVER_DIR" +login anonymous +app_update $APP_ID +quit
|
||||||
|
else
|
||||||
|
./steamcmd.sh +force_install_dir "$SERVER_DIR" +login "$STEAM_ACCOUNT" "$STEAM_PSW" "$STEAM_GUARD" +app_update $APP_ID +quit
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Instalar o actualizar MetaMod
|
||||||
|
echo "4.Actualizando MetaMod"
|
||||||
|
MM_VERSION_FILE="$SERVER_DIR/MM_installed_version.txt"
|
||||||
|
METAMOD_VERSION_URL="https://mms.alliedmods.net/mmsdrop/2.0/mmsource-latest-linux"
|
||||||
|
METAMOD_VERSION_URL=$(wget -qO- "$METAMOD_VERSION_URL")
|
||||||
|
|
||||||
|
if [ "$METAMOD" = "1" ]; then
|
||||||
|
if [ ! -d $MM_VERSION_FILE ]; then
|
||||||
|
touch $MM_VERSION_FILE
|
||||||
|
chown ${USER} "$MM_VERSION_FILE"
|
||||||
|
chmod 600 "$MM_VERSION_FILE"
|
||||||
|
fi
|
||||||
|
if [ ! "$METAMOD_VERSION_URL" = "$(cat $MM_VERSION_FILE)" ]; then
|
||||||
|
echo "Se ha encontrado una última versión distinta a la ya instalada"
|
||||||
|
echo "Actual MM version: $(cat $MM_VERSION_FILE) | New MM version: $METAMOD_VERSION_URL"
|
||||||
|
|
||||||
|
echo "$METAMOD_VERSION_URL" > $MM_VERSION_FILE
|
||||||
|
|
||||||
|
METAMOD_DOWNLOAD_BY_VERSION_URL="https://mms.alliedmods.net/mmsdrop/2.0/$METAMOD_VERSION_URL"
|
||||||
|
DROP_MM_DIR="${SERVER_DIR}/game/csgo" # For download the binaries
|
||||||
|
METAMOD_DIR="${SERVER_DIR}/game/csgo/addons/metamod" # Fixes news installations
|
||||||
|
|
||||||
|
if [ ! -d "$METAMOD_DIR" ]; then
|
||||||
|
echo "Instalando MetaMod..."
|
||||||
|
mkdir -p "$METAMOD_DIR"
|
||||||
|
else
|
||||||
|
echo "Actualizando MetaMod..."
|
||||||
|
fi
|
||||||
|
if wget -qO- "$METAMOD_DOWNLOAD_BY_VERSION_URL" | tar -xz -C "$DROP_MM_DIR"; then
|
||||||
|
echo "El archivo se descargó y descomprimió correctamente."
|
||||||
|
echo "MetaMod instalado/actualizado con éxito."
|
||||||
|
else
|
||||||
|
echo "Error: No se pudo descargar o descomprimir el archivo."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
# Comprobar y activar el mecanismo de carga de plugins hacia Source2
|
||||||
|
# ya ves
|
||||||
|
|
||||||
|
else
|
||||||
|
echo "La ultima version de MM es la misma que la actualmente instalada."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Instalar o actualizar SourceMod
|
||||||
|
# echo "5.Actualizando SourceMod"
|
||||||
|
# SM_VERSION_FILE="$SERVER_DIR/SM_installed_version.txt"
|
||||||
|
# SOURCEMOD_VERSION_URL="https://sm.alliedmods.net/smdrop/1.11/sourcemod-latest-linux"
|
||||||
|
# SOURCEMOD_VERSION_URL=$(wget -qO- "$SOURCEMOD_VERSION_URL")
|
||||||
|
|
||||||
|
# if [ ! -d $SM_VERSION_FILE ]; then
|
||||||
|
# touch $SM_VERSION_FILE
|
||||||
|
# chown ${USER} "$SM_VERSION_FILE"
|
||||||
|
# chmod 600 "$SM_VERSION_FILE"
|
||||||
|
# fi
|
||||||
|
# if [ ! "$SOURCEMOD_VERSION_URL" = "$(cat $SM_VERSION_FILE)" ]; then
|
||||||
|
# echo "Se ha encontrado una última versión distinta a la ya instalada"
|
||||||
|
# echo "Actual SM version: $(cat $SM_VERSION_FILE) | New SM version: $SOURCEMOD_VERSION_URL"
|
||||||
|
|
||||||
|
# echo "$SOURCEMOD_VERSION_URL" > $SM_VERSION_FILE
|
||||||
|
|
||||||
|
# SOURCEMOD_VERSION_URL="https://sm.alliedmods.net/smdrop/1.11/$SOURCEMOD_VERSION_URL"
|
||||||
|
# SOURCEMOD_DIR="$SERVER_DIR/csgo/addons/sourcemod"
|
||||||
|
# if [ ! -d "$SOURCEMOD_DIR" ]; then
|
||||||
|
# echo "Instalando SourceMod desde cero..."
|
||||||
|
# mkdir -p "$SOURCEMOD_DIR"
|
||||||
|
# wget -qO- "$SOURCEMOD_VERSION_URL" | tar -xz -C "$SERVER_DIR/csgo"
|
||||||
|
# echo "SourceMod instalado con éxito."
|
||||||
|
# else
|
||||||
|
# if [ "$BACKUP_SM_CFG" = "1" ]; then
|
||||||
|
# TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
||||||
|
# if [ ! -d "$BACKUP_DIR" ]; then
|
||||||
|
# echo "El directorio de backups no existe: BACKUP_DIR"
|
||||||
|
# mkdir -p "$BACKUP_DIR"
|
||||||
|
# echo "Directorio creado: $BACKUP_DIR"
|
||||||
|
# fi
|
||||||
|
# tar -czf "$BACKUP_DIR/addons_backup_$TIMESTAMP.tar.gz" -C "$SERVER_DIR/csgo/addons" .
|
||||||
|
# FILES_COUNT=$(ls -1 $directorio | wc -l)
|
||||||
|
# if [ $FILES_COUNT -gt $MAX_BACKUPS ]; then
|
||||||
|
# # Obtener la lista de archivos ordenados por fecha de modificación (el más antiguo al final)
|
||||||
|
# OLD_FILES=$(ls -1t $BACKUP_DIR | tail -n $(expr $FILES_COUNT - $MAX_BACKUPS))
|
||||||
|
# # Eliminar los archivos más antiguos
|
||||||
|
# rm $BACKUP_DIR/$OLD_FILES
|
||||||
|
# fi
|
||||||
|
# echo "Copia de seguridad finalizada"
|
||||||
|
# fi
|
||||||
|
# echo "Actualizando SourceMod sin perder la configuración existente..."
|
||||||
|
# TEMP_DIR="$(mktemp -d)"
|
||||||
|
# wget -qO- "$SOURCEMOD_VERSION_URL" | tar -xz -C "$TEMP_DIR"
|
||||||
|
# rm -rf "$TEMP_DIR/cfg" "$TEMP_DIR/addons/sourcemod/configs" "$TEMP_DIR/addons/sourcemod/data"
|
||||||
|
# cp -R "$TEMP_DIR/addons" "$SERVER_DIR/csgo"
|
||||||
|
# echo "SourceMod instalado/actualizado con éxito."
|
||||||
|
# rm -rf "$TEMP_DIR"
|
||||||
|
# fi
|
||||||
|
# else
|
||||||
|
# echo "La ultima version de SM es la misma que la actualmente instalada."
|
||||||
|
# fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#Iniciar servidor de CS:GO
|
||||||
|
|
||||||
|
cd "$SERVER_DIR/game/bin/linuxsteamrt64/"
|
||||||
|
echo "Lanzando servidor >> $SRCDS_RUN $LAUNCH_ARGS"
|
||||||
|
|
||||||
|
$SRCDS_RUN $LAUNCH_ARGS
|
||||||
|
|
||||||
|
|
||||||
|
# if [[ -n $INVOCATION_ID ]]; then # Comprobar si el script esta lanzando un servicio o desde el
|
||||||
|
# echo "El script se está ejecutando desde un archivo .service."
|
||||||
|
# echo -c "####################\nArgumentos de lanzamiento: ${LAUNCH_ARGS}\n ####################"
|
||||||
|
# echo "Lanzando servidor el $SCREEN_NAME en 5 segundos..."
|
||||||
|
# sleep 5
|
||||||
|
# $SRCDS_RUN $LAUNCH_ARGS
|
||||||
|
|
||||||
|
# else
|
||||||
|
# # Lanza el servidor usando screen
|
||||||
|
# echo -c "####################\nArgumentos de lanzamiento: ${LAUNCH_ARGS}\n ####################"
|
||||||
|
# echo "Lanzando servidor el $SCREEN_NAME en 5 segundos..."
|
||||||
|
# echo "El script se está ejecutando manualmente por un usuario."
|
||||||
|
# sleep 5
|
||||||
|
# rm -f screenlog.*
|
||||||
|
# screen -L -AdmS $SCREEN_NAME $SRCDS_RUN $LAUNCH_ARGS
|
||||||
|
|
||||||
|
# # Espera un momento para que la pantalla tenga tiempo de iniciar
|
||||||
|
# sleep 1
|
||||||
|
|
||||||
|
# # Redirige la salida estándar y la salida de error a un archivo de registro
|
||||||
|
# screen -S $SCREEN_NAME -X logfile $LOG_FILE
|
||||||
|
# screen -S $SCREEN_NAME -X log on
|
||||||
|
# echo "La salida se está guardando en $LOG_FILE"
|
||||||
|
|
||||||
|
# echo ".Servidor de CSGO lanzado en la pantalla '$SCREEN_NAME'. Para adjuntar, ejecute: screen -r $SCREEN_NAME"
|
||||||
|
# exit 0
|
||||||
|
# fi
|
||||||
Loading…
Reference in New Issue
Block a user