Programa un reinicio de servidor ARK: Survival Ascended
Survival Ascended hereda el apetito por la memoria de Survival Evolved y añade el costo básico más alto del motor más nuevo. Un reinicio programado no es opcional en un servidor ocupado; es parte de ejecutarlo.
¿Cuándo debería reiniciarse?
Usa {{minutes}} donde debería ir el número de la cuenta atrás.
Lo que ocurre, en orden
- El trabajo comienzaAdvertir
ServerChat El servidor se reiniciará en 15 minutos - 10 minutos antesAdvertir
ServerChat El servidor se reiniciará en 10 minutos - 5 minutos antesAdvertir
ServerChat El servidor se reiniciará en 5 minutos - 1 minutos antesAdvertir
ServerChat El servidor se reiniciará en 1 minutos - Hora de reinicioGuardar
SaveWorld - Hora de reinicioDetener
DoExit
Same as Survival Evolved: SaveWorld first, wait, then DoExit. Ascended writes a larger world and takes correspondingly longer.
La línea crontab
Desplazado 15 minutos antes de la hora elegida, para que el reinicio caiga en ella en lugar de 15 minutos después.
45 3 * * * /opt/restart-ark_sa.sh
El script que ejecuta
Guárdalo como /opt/restart-ark_sa.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 ARK: Survival Ascended.
# Generated by spawnly.net/tools/restart-scheduler
# The password stays out of this file. Put it in the environment, or in a
# file only root can read, and export it before this script runs.
RCON_HOST="${RCON_HOST:-127.0.0.1}"
RCON_PORT="${RCON_PORT:-27020}"
: "${RCON_PASSWORD:?set RCON_PASSWORD before running}"
send() {
rcon-cli --host "$RCON_HOST" --port "$RCON_PORT" --password "$RCON_PASSWORD" "$1"
}
# 15 minute warning
send 'ServerChat El servidor se reiniciará en 15 minutos'
sleep 300
# 10 minute warning
send 'ServerChat El servidor se reiniciará en 10 minutos'
sleep 300
# 5 minute warning
send 'ServerChat El servidor se reiniciará en 5 minutos'
sleep 240
# 1 minute warning
send 'ServerChat El servidor se reiniciará en 1 minutos'
sleep 60
# Flush the world to disk
send 'SaveWorld'
sleep 10
# Shut down cleanly
send 'DoExit'
# Give the process time to finish writing before anything restarts it.
sleep 30
systemctl start ark_sa 2>/dev/null || trueEl 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 ARK: Survival Ascended
SaveWorld primero, espera, luego DoExit — la misma regla que Survival Evolved, y importa más aquí porque Ascended's world files son más grandes y tardan más en escribirse. Da al guardado un margen generoso antes del comando de parada y da al proceso un margen generoso antes de que algo intente volver a ponerlo en marcha.