Jump to content

Levanta los cores automáticamente


Recommended Posts

Hola

 

Vi que muchos servidores privados cuando se les caía un core quedaba horas caído y las personas no podían acceder a los mapas de ese core. Había que esperar a que lo reporten al administrador y él se encargue de reiniciar el servidor.

Pues esta práctica no es muy buena obviamente. Y aquí traje la solución.

 

Siempre estuvo esto, solo que pocos se han dado cuenta.

 

Deben tener los files Marty Sama o al menos tener la misma estructura, saben que me refiero al archivo admin_panel.sh y relacionados.

 

image.png

 

Al iniciar el servidor normalmente escribimos 1 o 1i, y para cerrarlo 2 o 2i.

Esta vez utilizaremos las opciones que están resaltadas en amarillo.

 

1a: hace lo mismo que el 1 (iniciar todo) con la diferencia de que se creará un proceso demonio donde cada x tiempo se ejecutará el start.

2a. hace lo mismo que el 2 (cerrar todo) con la diferencia de que se creará un proceso demonio donde cada x tiempo se ejecutará el close.

 

Si inicias de esta manera, tu servidor abrirá todos los CHs disponibles. Para evitar esto, debes editar el archivo start.list

[
    {
        "serv": "srv1", 
        "path": "srv1/db", 
        "chan": 0, 
        "type": 1, 
        "name": "srv1-db"
    }, 
    {
        "serv": "srv1", 
        "path": "srv1/auth", 
        "chan": 0, 
        "type": 2, 
        "name": "srv1-auth"
    }, 
    {
        "serv": "srv1", 
        "path": "srv1/chan/ch1/core1", 
        "chan": 1, 
        "type": 5, 
        "name": "srv1-ch1-core1"
    }, 
    {
        "serv": "srv1", 
        "path": "srv1/chan/ch1/core2", 
        "chan": 1, 
        "type": 5, 
        "name": "srv1-ch1-core2"
    }, 
    {
        "serv": "srv1", 
        "path": "srv1/chan/ch1/core3", 
        "chan": 1, 
        "type": 5, 
        "name": "srv1-ch1-core3"
    }, 
    {
        "serv": "srv1", 
        "path": "srv1/chan/ch99/core99", 
        "chan": 99, 
        "type": 5, 
        "name": "srv1-ch99-core99"
    }
]

Simplemente deja los CHs que quieres que se inicien. En mi servidor solo necesito CH1 porque lo uso para pruebas, así que he quitado CH2, 3, 4, 5 y 6. Y siempre haz una copia antes de modificar el archivo.

Ya iniciado el servidor con 1a, cada vez que se genere un game.core, el servidor se caerá pero en x tiempo volverá a recuperarse y se podrá volver a entrar.

El x tiempo son 10 segundos, lo puedes encontrar en el archivo daemon.sh. Para servidores con muchos jugadores recomiendo aumentar el número a 5 minutos. 

Siempre que se inicie el servidor con 1a y lo vayas a cerrar, debes cerrarlo con 2a o sino se bugea.

 

 

Parte técnica (académica)

 

El archivo admin_panel.sh tiene este script en la sección 1a:

1a|startall)
	cd $v_mt2f
	sh daemon.sh &
	cd $v_base
	cecho "startall completed"
;;

Donde vemos que se ejecuta el archivo daemon.sh. Seguido con un &, esto indica que el proceso se ejecutará en segundo plano, es decir, a pesar de que está trabajando, podrás seguir ejecutando comandos en la misma consola.

 

El archivo daemon.sh luce así:

#!/bin/sh
#### @martysama0134 start scripts ####
while true; do
	./start.py &
	sleep 10
done

Hace un ciclo infinito pero hace una pausa de 10 segundos. Esto no significa que el servidor se abra cada 10 segundos porque deben morir esos procesos antes de iniciar unos nuevos.

 

Cómo los puedes probar?

Una vez el servidor esté encendido, verifica todos los procesos con el comando ps.

Revisa que estén todos tus cores.

image.png

Elige el número de un proceso, por ejemplo, el de core1 y ejecuta el comando kill, así:

kill 70176

Una vez matado el proceso, ejecuta de nuevo ps. Ya no aparecerá pero en pocos segundos verás en la consola cómo se ejecuta de nuevo ese core y podrás volver a entrar a los mapas.

 

Si llegaras a cerrar el servidor con el 2 o 2i, se encenderá de nuevo automáticamente porque la opción 2 o 2i no matarán el proceso de daemon.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...