-
démarrer un serveur minecraft dans une session screen et monitorer
screen -dmS minecraft_partie java -Xmx4G -Xms2G -jar server.jar nogui
Options de Screen:
-d -mDémarrer en mode détaché (comme un service)-S minecraft_hard_coreNommer la session pour une identification facileOptions Java recommandées pour Minecraft:
-Xmx4GMémoire maximum allouée (4 Go)-Xms2GMémoire initiale allouée (2 Go)-jar server.jarChemin vers votre fichier serveurnoguiDésactive l’interface graphique inutile en serveurGérer la session
Vérifier que le serveur tourne:
screen -ls 12345.minecraft_ma_partie (Detached)
Se connecter à la console:
screen -r minecraft_partie
Configuration Avancée
Pour un serveur optimisé, créez un script de démarrage (start.sh):
#!/bin/bash SESSION_NAME="minecraft_partie" JAR_FILE="server.jar" JAVA_ARGS="-Xmx4G -Xms2G" SCREEN_ARGS="-dmS" # Vérifier si la session existe déjà if screen -list | grep -q "$SESSION_NAME"; then echo "Erreur: Une session $SESSION_NAME existe déjà!" exit 1 fi # Démarrer le serveur screen $SCREEN_ARGS $SESSION_NAME java $JAVA_ARGS -jar $JAR_FILE nogui echo "Serveur Minecraft démarré dans screen '$SESSION_NAME'" echo "Pour vous y connecter: screen -r $SESSION_NAME"
Automatisation du redémarrage
Pour gérer les crashes (utile en Hardcore), créez un script restart.sh:
#!/bin/bash SESSION="minecraft_hard_core" while true; do # Démarrer le serveur screen -dmS $SESSION java -Xmx4G -Xms2G -jar server.jar nogui # Attendre que le serveur crash while screen -list | grep -q "$SESSION"; do sleep 60 done echo "Serveur crashé, redémarrage dans 10 secondes..." sleep 10 done
Conseils pour Serveur Hardcore
Sauvegardes automatiques:
# Dans crontab -e 0 */2 * * * tar -czf /backups/minecraft-hc-$(date +\%Y\%m\%d-\%H\%M).tar.gz /chemin/vers/monde
Journalisation:
screen -L -Logfile /var/log/minecraft-hc.log -S minecraft_hard_core java -Xmx4G [...]
Monitoring:
Installez htop puis:watch -n 1 "screen -S minecraft_hard_core -X stuff 'list\n'"
Bonnes Pratiques pour Éviter l’Erreur
2. Utilisez un script de démarrage (start_mc.sh)
#!/bin/bash SESSION="mc_hardcore" JAR="server.jar" if screen -list | grep -q "$SESSION"; then echo "⚠️ La session '$SESSION' existe déjà. Connectez-vous avec :" echo " screen -r $SESSION" else screen -dmS $SESSION java -Xmx4G -Xms2G -jar $JAR nogui echo "✅ Serveur démarré dans screen '$SESSION'. Pour vous connecter :" echo " screen -r $SESSION" fi
3. Commandes Utiles pour Gérer Screen
screen -r mc_hardcore Se connecter à la session
Ctrl + A → D Détacher la session (sans la quitter)
screen -X -S mc_hardcore quit Tuer la session proprement
1. Tuer une session spécifique
screen -S nom_session -X quit
-X quit : Envoie la commande quit pour terminer proprement
3. Tuer toutes les sessions Screen
killall screen
5. Si Screen ne répond pas (méthode forcée)
Trouvez le processus Screen :
ps aux | grep screen
Tuez-le manuellement :
kill -9 PID_du_processus
Bonnes pratiques
Sauvegardez vos données avant de tuer une session (surtout pour un serveur Minecraft).
Vérifiez que la session est bien morte :
screen -wipe # Nettoie les sessions terminées
Exemple Complet pour un Serveur Minecraft
Lister les sessions :
screen -ls # 5678.mc_hardcore (Detached)
Tuer proprement :
screen -S mc_hardcore -X stuff 'stop\n' # Envoie la commande 'stop' au serveur screen -S mc_hardcore -X quit # Ferme la session
screen -ls # No Sockets found (Tout est propre)