Planifiez un redémarrage de serveur Palworld
Palworld l'utilisation de la mémoire augmente avec le nombre de bases et de pals dans le monde et ne la libère pas, ce qui fait d'un serveur dédié un candidat fort pour un redémarrage quotidien. C'est l'un des cas les plus clairs où la durée de fonctionnement et les performances sont directement opposées.
À quel moment doit-il redémarrer ?
Utilisez {{minutes}} là où le nombre de compte à rebours doit être placé.
Ce qui se passe, dans l'ordre
- Le travail commenceAvertir
Broadcast Redémarrage du serveur dans 15 minutes - 10 minutes avantAvertir
Broadcast Redémarrage du serveur dans 10 minutes - 5 minutes avantAvertir
Broadcast Redémarrage du serveur dans 5 minutes - 1 minutes avantAvertir
Broadcast Redémarrage du serveur dans 1 minutes - Heure de redémarrageEnregistrer
Save - Heure de redémarrageArrêter
Shutdown 60 Scheduled restart
Shutdown takes a delay in seconds and its own message, so it can do the final countdown for you. Note the quirk in Broadcast: on many builds it truncates at the first space, so a multi-word warning arrives as one word. Test yours before trusting it, and fall back to the Shutdown message if it does.
La ligne cron
Décalé de 15 minutes plus tôt que l'heure choisie, afin que le redémarrage lui-même tombe à cette heure plutôt qu'à 15 minutes après.
45 3 * * * /opt/restart-palworld.sh
Le script qu'il exécute
Enregistrer en tant que /opt/restart-palworld.sh et le rendre exécutable. Il suppose que rcon-cli est sur le chemin et lit le mot de passe à partir de l'environnement plutôt que de l'intégrer.
#!/usr/bin/env bash
set -euo pipefail
# Scheduled restart for Palworld.
# 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:-25575}"
: "${RCON_PASSWORD:?set RCON_PASSWORD before running}"
send() {
rcon-cli --host "$RCON_HOST" --port "$RCON_PORT" --password "$RCON_PASSWORD" "$1"
}
# 15 minute warning
send 'Broadcast Redémarrage du serveur dans 15 minutes'
sleep 300
# 10 minute warning
send 'Broadcast Redémarrage du serveur dans 10 minutes'
sleep 300
# 5 minute warning
send 'Broadcast Redémarrage du serveur dans 5 minutes'
sleep 240
# 1 minute warning
send 'Broadcast Redémarrage du serveur dans 1 minutes'
sleep 60
# Flush the world to disk
send 'Save'
sleep 10
# Shut down cleanly
send 'Shutdown 60 Scheduled restart'
# Give the process time to finish writing before anything restarts it.
sleep 30
systemctl start palworld 2>/dev/null || trueLe cron utilise le fuseau horaire du serveur, pas le vôtre. Vérifiez-le avec timedatectl avant de supposer que 04:00 signifie 04:00 chez vous — un conteneur en UTC et un administrateur en Europe sont deux heures éloignés en été et une en hiver.
La partie spécifique à Palworld
Deux particularités. La diffusion tronque au premier espace sur de nombreuses constructions, donc un avertissement multimarques arrive sous forme de mot unique — testez le vôtre avant de vous fier à lui. Et la commande Arrêt prend un délai en secondes plus son propre message, donc elle peut exécuter le compte à rebours final elle-même ; si la diffusion est peu fiable sur votre construction, utilisez un délai d'arrêt long plutôt qu'une échelle d'avertissement.