U3Games

Games | Desarrollo & Soporte => L2 | Sección de Servidores => Lineage => L2 | Implementaciones => Mensaje iniciado por: Sacrifice en Ago 03, 2025, 12:58 AM

Título: Script arranque automático en linux
Publicado por: Sacrifice en Ago 03, 2025, 12:58 AM
Edito éste primer post por ver que efectivamente no está muy claro lo que he tratado de compartir. Bien, se trata de un script (VALIDO SOLO PARA LINUX, para windows no sirve) que permite arrancar, parar o reiniciar el login y el gameserver con tan solo un comando.

Es tan buenísimo éste script que ustedes si tienen la máquina parada y la arrancan no tienen que hacer nada, puesto que el script se encarga por sí mismo de ponerles el server online.

En su consola de linux, ustedes escriben:

Para iniciar.  Inicia el LoginServer y el GameServer y sus procesos java asociados, mirando que antes no lo estén ya.
sudo /etc/init.d/l2jserver start o
sudo service l2jserver stopPara parar. Para el LoginServer y el GameServer y los procesos java asociados.
sudo /etc/init.d/l2jserver stop o
sudo service l2jserver stopPara reiniciar. Primero para el LoginServer y el GameServer y los procesos java asociados y después los inicia de nuevo.
sudo /etc/init.d/l2jserver restart o
sudo service l2jsever restart
La guia de instalación es ésta y perdonen que esté en inglés, pero es que no la he traducido de mi snippet.
sudo chmod 775 l2jserversudo chown root:root l2jserversudo mv ~/l2jserver /etc/init.d/l2jserversudo update-rc.d l2jserver defaults
El nombre del fichero ha de ser l2jserver (tal cual, sin extensión) y deberá estar en formato UNIX. El contenido del fichero será éste:
#!/bin/sh
### BEGIN INIT INFO
# Provides: L2J_Server
# Required-Start: $syslog mysql
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Script to start/stop/restart L2J_Server
### END INIT INFO
# Change xxxx with your home directory server. Absolute path.
base=/home/xxxx/l2jserver
start_l2j() {
    if [ -n "$(pgrep -f GameServer_loop.sh)" -o "$(pgrep -f l2jserver.gameserver)" -o "$(pgrep -f LoginServer_loop.sh)" -o "$(pgrep -f l2jserver.loginserver)" ]; then
        echo ============================================================
        echo Try first to stop all L2J server scripts and java processes.
        echo Use stop/restart command.
        echo ============================================================
    else
        cd ${base}/login
        ./startLoginServer.sh
        cd ${base}/game
        ./startGameServer.sh
        echo =======================================================
        echo Game Server processes started.
        echo You have to wait about 100 sec or more to be operable.
        echo Give next command to see progress:
        echo tail -f ${base}/game/log/stdout.log
        echo Stop tail command with CTRL-C
        echo =======================================================
    fi
}
stop_l2j() {
    #Stop Game Server script and java
    if [ -n "$(pgrep -f GameServer_loop.sh)" ]; then
        pkill -f GameServer_loop.sh
        echo Game Server Script stopped
    else
        echo ==================================
        echo Game Server Script is not running!
        echo ==================================
    fi
    if [ -n "$(pgrep -f gameserver)" ]; then
        pkill -f gameserver
        echo Waiting for Game Java Server to exit...
        i=1
            while [ -n "$(pgrep -f gameserver)" ]
                do
                    sleep 1
                    i=$((i+1))
                done
    echo Game java server stopped in $i sec
    else
        echo ================================
        echo Game java server is not running!
        echo ================================
    fi
    #Stop login server script and java
    if [ -n "$(pgrep -f LoginServer_loop.sh)" ]; then
        pkill -f LoginServer_loop.sh
        echo Login Server Script stopped
    else
        echo ===================================
        echo Login Server Script is not running!
        echo ===================================
    fi
    if [ -n "$(pgrep -f loginserver)" ]; then
        pkill -f loginserver
        echo Waiting for Login Java Server to exit...
        i=1
            while [ -n "$(pgrep -f loginserver)" ]
                do
                    sleep 1
                    i=$((i+1))
                done
    echo Login java server stopped in $i sec
    else
        echo =================================
        echo Login Java Server is not running!
        echo =================================
    fi
}
case "$1" in
    start)
        start_l2j
    ;;
    stop)
        stop_l2j
    ;;
    restart)
        stop_l2j
        start_l2j
    ;;
    *)
    echo "Usage: $0 start|stop|restart" >&2
    exit 3
    ;;
esac