caanmasu Posted September 1, 2022 Report Share Posted September 1, 2022 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. 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. 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. clocki and Pegasus 1 1 Quote Link to comment Share on other sites More sharing options...
clocki Posted September 2, 2022 Report Share Posted September 2, 2022 Simplemente sublime caanmasu. Quote Link to comment Share on other sites More sharing options...
Shogun Posted September 2, 2022 Report Share Posted September 2, 2022 El vrunner también hace esto. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.