Programa un reinicio de servidor Valheim

Valheim servidores se benefician de un reinicio en un tiempo prolongado, pero el juego no te da casi nada para hacerlo de manera elegante con él. El servidor dedicado no tiene ninguna consola remota en absoluto.

¿Cuándo debería reiniciarse?

Valheim no tiene consola remota, por lo que un script no puede advertir a tus jugadores o activar un guardado. Lo que queda es una señal de proceso limpia, que este juego sí maneja correctamente. Por lo tanto, el horario que se muestra a continuación se ejecuta exactly a la hora que has establecido, sin tiempo de antelación, porque no hay cuenta atrás para ejecutar.

Lo que ocurre, en orden

  1. Hora de reinicioDetenerSIGTERM al proceso, luego esperar a que termine por sí mismo

Valheim’s dedicated server has no remote console, so there is no way to warn players from a script and no save command to send. The restart is a clean process signal and nothing else — which the server does handle correctly, saving the world as it shuts down.

La línea crontab

No se necesita tiempo de anticipación — no hay cuenta atrás antes del reinicio.

0 4 * * *  /opt/restart-valheim.sh

El script que ejecuta

Guárdalo como /opt/restart-valheim.sh y hazlo ejecutable. Supone que rcon-cli está en la ruta y lee la contraseña del entorno en lugar de incrustarla.

#!/usr/bin/env bash
set -euo pipefail

# Scheduled restart for Valheim.
# Generated by spawnly.net/tools/restart-scheduler

sleep 10
# Valheim has no console, so stop it the way its service manager would.
systemctl restart valheim || pkill -TERM -f valheim

El cron utiliza la zona horaria del servidor, no la tuya. Compruébala con timedatectl antes de asumir que las 04:00 son las 04:00 donde estás —un contenedor en UTC y un administrador en Europa tienen dos horas de diferencia en verano y una en invierno.

La parte específica de Valheim

No hay forma de advertir a los jugadores desde un script y no hay comando de guardado. Lo que Valheim sí hace correctamente es guardar en un cierre limpio, así que un SIGTERM — que es lo que un sistemactl restart envía — deja el mundo intacto. No uses un señal kill que omita eso y no programes nada durante las horas en que la gente juega, porque la primera advertencia que alguien recibirá será la desconexión.

Soporte & Ayuda