Iniciar sesiónCrear servidor
Apps y bots

Reiniciar tu app o bot y activar el reinicio automático

Reinicia tu app desde el panel, activa el health check para que se reinicie sola tras varios fallos o programa un reinicio diario en SolumeCore.

7 min de lectura#restart app#auto restart#health check#scheduled restart#reiniciar app#reinicio automático#reiniciar bot de discord#bot keeps crashing

Reinicias tu app o bot de SolumeCore con el botón Reiniciar de la parte superior de la página de la app, y puedes hacer que se reinicie sola de dos maneras: con un health check que reinicia la app tras varios fallos seguidos, o con una tarea programada que la reinicia a una hora fija, por ejemplo cada noche. Elige la que encaje con tu app: los bots y las apps web necesitan configuraciones distintas.

Reinicia, apaga o fuerza el apagado a mano

Los controles de energía están arriba de la página de la app, en cualquier pestaña:

  • Encender pone la app en marcha.
  • Reiniciar la detiene con calma y la vuelve a arrancar. Úsalo después de cambiar variables, paquetes o la versión del lenguaje.
  • Apagar la detiene con calma, para que tu programa termine lo que está haciendo.
  • Forzar apagado mata el proceso al instante, sin darle tiempo a guardar. El panel te pide confirmar y lo recomienda solo cuando Apagar no responde.

Puedes seguir el resultado en Consola > Consola en vivo. Mira Ver los logs y la consola en vivo de tu app o bot.

Opción 1: Reinicio automático con un health check

Un health check prueba tu app cada cierto tiempo. Si falla varias veces seguidas, el panel puede reiniciar la app y avisarte. Funciona conectándose a la dirección pública de tu app, así que solo tiene sentido si tu app acepta conexiones en un puerto.

  1. Abre tu app y entra en Consola > Logs y salud.
  2. En la tarjeta Health check, pulsa Activar. Si ya está activo, pulsa Configurar.
  3. En Cómo revisar, elige:
    • Web (HTTP) para webs y APIs. Pedimos una página y esperamos una respuesta que no sea un error. Escribe la Página a pedir, como / o /health (debe empezar por /).
    • Puerto (TCP) para lo que no es una web pero escucha en un puerto. Solo comprobamos que el puerto acepte conexiones.
  4. Elige el Puerto (el principal por defecto), cada cuánto revisar en Cada (de 15 a 3.600 segundos; 30 por defecto) y los Fallos antes de actuar (3 por defecto).
  5. Activa Reiniciarla sola y, si quieres una notificación, Avisarme. Ambos vienen activados por defecto.
  6. Pulsa Guardar.

Cómo se comporta:

  • Una revisión falla cuando la app no responde en unos 5 segundos, rechaza la conexión o, en HTTP, contesta con un estado de error.
  • Tras el número de fallos seguidos que elegiste, la app se reinicia y recibes una notificación. La tarjeta muestra entonces Último reinicio automático.
  • Después de un reinicio, el panel espera al menos 90 segundos antes de revisar de nuevo, para que la app termine de arrancar.
  • Las revisiones solo se hacen con la app encendida. Si la apagaste tú, no se considera caída, y no se juzga nada mientras hay un deploy en curso.

Una nota para los bots de Discord

Un bot de Discord normal no abre ningún puerto: se conecta hacia fuera, a Discord. Una revisión TCP o HTTP fallaría siempre y reiniciaría tu bot en bucle. Tienes dos opciones razonables:

  1. Dejar el health check Apagado y usar un reinicio programado (opción 2 más abajo).
  2. Hacer que el bot responda también una petición HTTP mínima en el PORT que le da el panel, y usar entonces la revisión Web (HTTP). En Node.js:
javascript
const http = require('node:http');

http.createServer((req, res) => res.end('ok')).listen(process.env.PORT, '0.0.0.0');

En Python:

python
import os
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer


class Ping(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"ok")

    def log_message(self, *args):
        pass


def serve():
    HTTPServer(("0.0.0.0", int(os.environ["PORT"])), Ping).serve_forever()


threading.Thread(target=serve, daemon=True).start()

Coloca la última línea antes de bot.run(...) (o client.run(...)): esa llamada bloquea, así que lo que haya después nunca se ejecuta.

Así tu bot queda accesible para la revisión, pero un bot que se queda colgado sin caerse no siempre la hará fallar, de modo que no esperes que detecte cada problema.

Opción 2: Programa un reinicio

Las tareas programadas se ejecutan según el reloj, incluso con el panel cerrado. Un reinicio nocturno es una forma sencilla de mantener fresca una app que lleva mucho tiempo en marcha.

  1. Entra en la pestaña Automatización y abre Tareas programadas.
  2. Pulsa Nueva tarea, escribe un Nombre como Reinicio de la madrugada y elige cuándo se ejecuta. Los atajos incluyen Cada día a las 4, Cada 6 horas, Cada hora y Cada domingo a las 4, o puedes rellenar los campos de cron (Minuto, Hora, Día del mes, Mes, Día de la semana).
  3. Revisa la Zona horaria. La hora es la de la zona que elijas aquí, no la del servidor.
  4. Deja activada Solo cuando el servidor esté en línea si no quieres que la tarea encienda una app que apagaste a propósito.
  5. Guarda la tarea y pulsa Nueva acción. En Qué hacer elige Encender / apagar y en Acción elige Reiniciar. Guarda.
  6. Pulsa Ejecutar ahora para probarla.

Puedes añadir más pasos a la misma tarea, por ejemplo un backup antes del reinicio.

Si tu app se cae una y otra vez

Un reinicio automático devuelve la app a la vida; no arregla la causa. Si se reinicia sin parar:

  1. Abre los logs guardados y busca el primer error. Mira Ver los logs y la consola en vivo de tu app o bot.
  2. Comprueba que el comando de arranque y las variables sean correctos.
  3. Desactiva Reiniciarla sola mientras depuras, para que el bucle no oculte el error.

Solución de problemas

  • El health check dice «No responde» pero mi bot funciona: el bot no escucha en ningún puerto. Usa el endpoint HTTP de la opción 1 o apaga la revisión.
  • La revisión indica «Conexión rechazada: no hay nada escuchando en ese puerto»: tu app debe escuchar en 0.0.0.0 y en la variable PORT, no en localhost.
  • Los botones están deshabilitados: puede que el servicio esté suspendido o que no tengas permiso para controlarlo.
  • Cambié una variable y la app no la tomó: pulsa Reiniciar para aplicar en Código > Variables.

Preguntas frecuentes

¿Mi app se reinicia sola si se cae?

Solo si lo configuras. Con un health check y Reiniciarla sola activado, la app se reinicia tras varias revisiones fallidas seguidas. También puedes programar reinicios. Sin ninguna de las dos cosas, la reinicias tú desde el panel.

¿Cómo reinicio mi bot de Discord todos los días?

Crea una tarea programada en Automatización > Tareas programadas con una acción Encender / apagar en Reiniciar, y usa el atajo Cada día a las 4 o la hora que prefieras.

¿Me avisan cuando mi app se cae?

Sí, si el health check está activo y Avisarme está habilitado. Recibes una notificación cuando la app se cae.

¿Desplegar reinicia la app?

Sí. Un deploy reinicia la app unos instantes. Para las apps web que no pueden permitirse ese corte, mira Deploys sin caída.

Artículos relacionados

¿Necesitas un hogar siempre encendido para tu bot o tu API? Mira los planes de apps.

¿Te fue útil este artículo?
Reiniciar tu app o bot y activar el reinicio automático