#1 Le 22/10/2016, à 09:13
- Gégé974
Prob de redémarrage automatique serveur Minecraft Linux
Bonjour,
J’ai monté un serveur Minecraft Linux (Ubuntu) sur un Raspberry Pi3
Tout est ok, il fonctionne
Pour aller plus loin j’ai voulu faire en sorte que mon serveur Minecraft démarre automatiquement si le Raspberry démarre.
Pour cela j’ai créée un fichier nommé Start.sh dans /home/Minecraft
Voici le contenu :
#!/bin/bash
cd /home/minecraft
echo Le serveur démarre !!!
sleep
screen -S serveurminecraft java -Xms512M -Xmx1024M -jar spigot-1.10.2.jar
exit 0
puis j’ai rajouté la ligne suivante dans /etc/rc.local juste avant exit 0
/home/minecraft/start.sh
Mais mon serveur ne démarre pas automatiquement
Si je retire de la ligne la commande « screen –S serveurminecraft » ça fonctionne
Comment faire ?
Merci pour votre aide
Hors ligne
#2 Le 22/10/2016, à 09:34
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
screen -S serveurminecraft -X cmd
Hors ligne
#3 Le 23/10/2016, à 00:29
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Merci J5012
J'ai effectué la commande,suivante
et j'ai un message d'erreur "No screen session found."
Et toujours pas de session accessible...
#!/bin/bash
cd /home/minecraft
screen -S serveurminecraft -X cmd
java -Xms512M -Xmx1024M -jar spigot-1.10.2.jar nogui
exit 0
Merci pour votre aide
Dernière modification par Gégé974 (Le 23/10/2016, à 00:29)
Hors ligne
#4 Le 23/10/2016, à 11:04
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
euh : cmd est à remplacer par la bonne commande ...
pourquoi veux-tu utiliser screen en plus ?
edit : ici le tuto du service avec screen conseillé par minecraft official :
http://minecraft.gamepedia.com/Tutorial … tup_script
→ cree un service init.d qui prevoit et gere plusieurs situations :
- start : demarre le serveur minecraft
- stop : arrete le serveur minecraft
- update : met à jour
- backup : fait des sauvegardes
- status : donne l'etat courant
- restart : redemarre
- command : lance une commande liée au serveur minecraft lui-meme
si tu ne veux que start, stop , il te suffit de commenter les autres ...
Dernière modification par J5012 (Le 23/10/2016, à 11:15)
Hors ligne
#5 Le 24/10/2016, à 06:38
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Merci
En fait c'est la seule méthode que j'ai trouvé pour atteindre en SSH le serveur Minecraft lancé pour lui rentrer des commandes (comme ops, restart, etc...)
Pour le reste je vais regarder et tester
Merci
Hors ligne
#6 Le 24/10/2016, à 08:07
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Bonjour,
J'ai testé le script et je rencontre des problèmes...toujours pas de démarrage du serveur et pas de screen
Voici ce que j'aio fait
- J'ai créée un fichier "minecraft" dans /home/init.d
- j'ai modifié:
USERNAME='pi'
MAXHEAP=512
MINHEAP=1024
Ensuite:
chmod a+x /etc/init.d/minecraft
puis:
update-rc.d minecraft defaults
qu'en penses tu ?
Merci
Voici le script
#!/bin/bash
# /etc/init.d/minecraft
# version 0.4.2 2016-02-09 (YYYY-MM-DD)
#
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs screen-cleanup
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
#Settings
SERVICE='minecraft_server.jar'
SCREENNAME='minecraft_server'
OPTIONS='nogui'
USERNAME='pi'
WORLD='world'
MCPATH='/home/minecraft'
BACKUPPATH='/media/remote.share/minecraft.backup'
MAXHEAP=512
MINHEAP=1024
HISTORY=1024
CPU_COUNT=1
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -XX:+UseConcMarkSweepGC \
-XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts \
-jar $SERVICE $OPTIONS"
ME=`whoami`
as_user() {
if [ "$ME" = "$USERNAME" ] ; then
bash -c "$1"
else
su - "$USERNAME" -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
cd $MCPATH
as_user "cd $MCPATH && screen -h $HISTORY -dmS ${SCREENNAME} $INVOCATION"
sleep 7
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
mc_saveoff() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running... suspending saves"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-off\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
sync
sleep 10
else
echo "$SERVICE is not running. Not suspending saves."
fi
}
mc_saveon() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running... re-enabling saves"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-on\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
else
echo "$SERVICE is not running. Not resuming saves."
fi
}
mc_stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Stopping $SERVICE"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
sleep 10
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"stop\"\015'"
sleep 7
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Error! $SERVICE could not be stopped."
else
echo "$SERVICE is stopped."
fi
}
mc_update() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running! Will not start update."
else
as_user "cd $MCPATH && wget -q -O $MCPATH/versions --no-check-certificate https://launchermeta.mojang.com/mc/game/version_manifest.json"
if [ "$1" == "snapshot" ] ; then
JSONVERSION=`cd $MCPATH && cat versions | python -c "exec(\"import json,sys\nobj=json.load(sys.stdin)\nversion=obj['latest']['snapshot']\nfor v in obj['versions']:\n if v['id']==version:\n print(v['url'])\")"`
else
JSONVERSION=`cd $MCPATH && cat versions | python -c "exec(\"import json,sys\nobj=json.load(sys.stdin)\nversion=obj['latest']['release']\nfor v in obj['versions']:\n if v['id']==version:\n print(v['url'])\")"`
fi
as_user "cd $MCPATH && wget -q -O $MCPATH/versions --no-check-certificate $JSONVERSION"
MC_SERVER_URL=`cd $MCPATH && cat versions | python -c 'import json,sys;obj=json.load(sys.stdin);print(obj["downloads"]["server"]["url"])'`
as_user "rm $MCPATH/versions"
as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update --no-check-certificate $MC_SERVER_URL"
if [ -f $MCPATH/minecraft_server.jar.update ] ; then
if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null` ; then
echo "You are already running the latest version of $SERVICE."
else
as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
echo "Minecraft successfully updated."
fi
else
echo "Minecraft update could not be downloaded."
fi
fi
}
mc_backup() {
mc_saveoff
NOW=`date "+%Y-%m-%d_%Hh%M"`
BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
echo "Backing up minecraft world..."
#as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
#as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/minecraft_server_${NOW}.jar\""
mc_saveon
echo "Compressing backup..."
as_user "gzip -f \"$BACKUP_FILE\""
echo "Done."
}
mc_command() {
command="$1";
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
pre_log_len=`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"$command\"\015'"
sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
# print output
tail -n $[`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/logs/latest.log"
fi
}
#Start-Stop here
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
update)
mc_stop
mc_backup
mc_update $2
mc_start
;;
backup)
mc_backup
;;
status)
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
command)
if [ $# -gt 1 ] ; then
shift
mc_command "$*"
else
echo "Must specify server command (try 'help'?)"
fi
;;
*)
echo "Usage: $0 {start|stop|update|backup|status|restart|command \"server command\"}"
exit 1
;;
esac
exit 0
Hors ligne
#7 Le 24/10/2016, à 11:53
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
apres avoir inscrit le service minecraft
pour le demarrer sans reboot,
sudo service minecraft start
le script fourni par minecraft official est à adapter à ton contexte :
ta comande pour lancer minecraft
java -Xms512M -Xmx1024M -jar spigot-1.10.2.jar nogui
les modif du script de service
SERVICE='spigot-1.10.2.jar'
SCREENNAME='serveurminecraft'
OPTIONS='nogui'
MAXHEAP=1024
MINHEAP=512
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -jar $SERVICE $OPTIONS"
Hors ligne
#8 Le 24/10/2016, à 22:55
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Merci pour ton aide
alors désolé, mais j'ai toujours du mal
J'ai d'abord modifié le script (voir plus bas)
puis lancé la commande:
chmod a+x /etc/init.d/minecraft
puis
update-rc.d minecraft defaults
Et le script pour lancer le service:
sudo service minecraft start
Voici mo script modifié:
# /etc/init.d/minecraft
# version 0.4.2 2016-02-09 (YYYY-MM-DD)
#
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs screen-cleanup
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Minecraft server
# Description: Starts the minecraft server
### END INIT INFO
#Settings
SERVICE='spigot-1.10.2.jar'
SCREENNAME='serveurminecraft'
OPTIONS='nogui'
USERNAME='pi'
WORLD='world'
MCPATH='/home/minecraft'
BACKUPPATH='/media/remote.share/minecraft.backup'
MAXHEAP=1024
MINHEAP=512
HISTORY=1024
CPU_COUNT=1
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -jar $SERVICE $OPTIONS"
ME=`whoami`
as_user() {
if [ "$ME" = "$USERNAME" ] ; then
bash -c "$1"
else
su - "$USERNAME" -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is already running!"
else
echo "Starting $SERVICE..."
cd $MCPATH
as_user "cd $MCPATH && screen -h $HISTORY -dmS ${SCREENNAME} $INVOCATION"
sleep 7
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is now running."
else
echo "Error! Could not start $SERVICE!"
fi
fi
}
mc_saveoff() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running... suspending saves"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-off\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
sync
sleep 10
else
echo "$SERVICE is not running. Not suspending saves."
fi
}
mc_saveon() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running... re-enabling saves"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-on\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
else
echo "$SERVICE is not running. Not resuming saves."
fi
}
mc_stop() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Stopping $SERVICE"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"save-all\"\015'"
sleep 10
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"stop\"\015'"
sleep 7
else
echo "$SERVICE was not running."
fi
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "Error! $SERVICE could not be stopped."
else
echo "$SERVICE is stopped."
fi
}
mc_update() {
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running! Will not start update."
else
as_user "cd $MCPATH && wget -q -O $MCPATH/versions --no-check-certificate https://launchermeta.mojang.com/mc/game/version_manifest.json"
if [ "$1" == "snapshot" ] ; then
JSONVERSION=`cd $MCPATH && cat versions | python -c "exec(\"import json,sys\nobj=json.load(sys.stdin)\nversion=obj['latest']['snapshot']\nfor v in obj['versions']:\n if v['id']==version:\n print(v['url'])\")"`
else
JSONVERSION=`cd $MCPATH && cat versions | python -c "exec(\"import json,sys\nobj=json.load(sys.stdin)\nversion=obj['latest']['release']\nfor v in obj['versions']:\n if v['id']==version:\n print(v['url'])\")"`
fi
as_user "cd $MCPATH && wget -q -O $MCPATH/versions --no-check-certificate $JSONVERSION"
MC_SERVER_URL=`cd $MCPATH && cat versions | python -c 'import json,sys;obj=json.load(sys.stdin);print(obj["downloads"]["server"]["url"])'`
as_user "rm $MCPATH/versions"
as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update --no-check-certificate $MC_SERVER_URL"
if [ -f $MCPATH/minecraft_server.jar.update ] ; then
if `diff $MCPATH/$SERVICE $MCPATH/minecraft_server.jar.update >/dev/null` ; then
echo "You are already running the latest version of $SERVICE."
else
as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/$SERVICE"
echo "Minecraft successfully updated."
fi
else
echo "Minecraft update could not be downloaded."
fi
fi
}
mc_backup() {
mc_saveoff
NOW=`date "+%Y-%m-%d_%Hh%M"`
BACKUP_FILE="$BACKUPPATH/${WORLD}_${NOW}.tar"
echo "Backing up minecraft world..."
#as_user "cd $MCPATH && cp -r $WORLD $BACKUPPATH/${WORLD}_`date "+%Y.%m.%d_%H.%M"`"
as_user "tar -C \"$MCPATH\" -cf \"$BACKUP_FILE\" $WORLD"
echo "Backing up $SERVICE"
as_user "tar -C \"$MCPATH\" -rf \"$BACKUP_FILE\" $SERVICE"
#as_user "cp \"$MCPATH/$SERVICE\" \"$BACKUPPATH/minecraft_server_${NOW}.jar\""
mc_saveon
echo "Compressing backup..."
as_user "gzip -f \"$BACKUP_FILE\""
echo "Done."
}
mc_command() {
command="$1";
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
pre_log_len=`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S ${SCREENNAME} -X eval 'stuff \"$command\"\015'"
sleep .1 # assumes that the command will run and print to the log file in less than .1 seconds
# print output
tail -n $[`wc -l "$MCPATH/logs/latest.log" | awk '{print $1}'`-$pre_log_len] "$MCPATH/logs/latest.log"
fi
}
#Start-Stop here
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
update)
mc_stop
mc_backup
mc_update $2
mc_start
;;
backup)
mc_backup
;;
status)
if pgrep -u $USERNAME -f $SERVICE > /dev/null ; then
echo "$SERVICE is running."
else
echo "$SERVICE is not running."
fi
;;
command)
if [ $# -gt 1 ] ; then
shift
mc_command "$*"
else
echo "Must specify server command (try 'help'?)"
fi
;;
*)
echo "Usage: $0 {start|stop|update|backup|status|restart|command \"server command\"}"
exit 1
;;
esac
exit 0
Hors ligne
#9 Le 26/10/2016, à 18:24
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Je ne pense pas avoir oublié quelque chose, ou alors il y a une subtilité quelque part...
Merci pour votre aide
Hors ligne
#10 Le 27/10/2016, à 20:51
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
le programme java codant minecraft doit se trouver dans le chemin du service ...
donc si spigot est ton programme java , il doit se trouver dans le chemin du systeme, ou le script de service doit connaitre le chemin absolu ...
je n'ai pas indiqué sciemment le chemin complet de ton programme java, etant donné que j"ignore comment est installé ton minecraft, faute d'informations manquantes precoces (des la presentation du sujet de la discussion)
Dernière modification par J5012 (Le 27/10/2016, à 20:52)
Hors ligne
#11 Le 28/10/2016, à 09:26
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Ok, merci
Lorsque raspian démarre, on se retrouve sur une session appelée "pi"
le chemin est /home/pi
j'ai créée un dossier nommé "minecraft" à cet endroit et j'ai installé minecraft
Le fichier "spigot-1.10.2.jar" s'y trouve également
j'ai modifié le script comme suit (je montre les variables) mais malgré tout il y a encore un blocage...
Je me demande aussi si il n'y a pas aussi des droits sur le fichier car si je lance la commande manuellement a partir de la session "pi", il faut que je la lance avec "sudo" devant
Merci pour ton aide:
#Settings
SERVICE='spigot-1.10.2.jar'
SCREENNAME='serveurminecraft'
OPTIONS='nogui'
USERNAME='pi'
WORLD='world'
MCPATH='/home/pi/minecraft'
BACKUPPATH='/media/remote.share/minecraft.backup'
MAXHEAP=1024
MINHEAP=512
HISTORY=1024
CPU_COUNT=1
INVOCATION="java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -jar $SERVICE $OPTIONS"
Dernière modification par Gégé974 (Le 28/10/2016, à 10:02)
Hors ligne
#12 Le 29/10/2016, à 15:07
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Je pense que l'attribution des variables est bonne
Merci à tout ceux qui pourrons m'aider
Hors ligne
#13 Le 30/10/2016, à 23:58
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
au demarrage des services par init.d, le systeme ignore si des application figurent dans le chemin des utilisateurs ...
donc quand tu dis que le service doit chercher spigot.jar, et bien le systeme le cherche dans le systeme et non dans le chemin utilisateur ...
Hors ligne
#14 Le 01/11/2016, à 13:48
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Ok merci,
Donc si je comprends bien spigot-1.10.2.jar doit se trouver dans / ou /home ?
au demarrage des services par init.d, le systeme ignore si des application figurent dans le chemin des utilisateurs ...
donc quand tu dis que le service doit chercher spigot.jar, et bien le systeme le cherche dans le systeme et non dans le chemin utilisateur ...
Hors ligne
#15 Le 01/11/2016, à 19:32
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
ha je n'avais pas vu que tu etais passé au pi ... etait-ce le cas des le debut du sujet ?
(finalement le chemin du jar n'y est pour rien, j'avais oublié l'intervention de la variable mcpath)
si oui tu aurais du le mentionner des le depart ...
spigot jar est un fork de minecraft destiné aux serveurs dits "haute performance" (donc normalement pas de pi, et attendu un cpu x86-64) : https://www.spigotmc.org/wiki/spigot-installation/
de plus la version pi officielle de minecraft semble avoir ete abandonnée par manque de developpeurs
http://minecraft.gamepedia.com/Pi_Edition
un programme java bien concu, fonctionne quelque soit le systeme d'exploitation, mais le changement de code processeur n'est pas prevu par le langage java ...
Hors ligne
#16 Le 05/11/2016, à 11:00
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Ok merci,
Donc logiquement, si j'ai bien compris, Minecraft ne devrait pas se lancer dans mon contexte ?
Parce que il se lance normalement avec la commande
java -Xms512M -Xmx1024M -jar spigot-1.10.2.jar nogui
Le problème se situe au niveau du script où la notion de "screen" ne fonctionne pas, et cette fonction "screen" me permet de gérer Minecraft en ligne de commande.
Autre info:
en lançant la commande
sudo service minecraft start
pas de message d'erreur
en lançant la commande
service --status-all
, le service paraît lançé mais je n'arrive toujours pas à me connecter
pi@raspberrypi:~ $ service --status-all
[ - ] alsa-utils
[ + ] avahi-daemon
[ + ] bluetooth
[ - ] bootlogs
[ - ] bootmisc.sh
[ - ] checkfs.sh
[ - ] checkroot-bootclean.sh
[ - ] checkroot.sh
[ + ] console-setup
[ + ] cron
[ + ] dbus
[ + ] dhcpcd
[ + ] dphys-swapfile
[ + ] fake-hwclock
[ + ] hdparm
[ - ] hostname.sh
[ - ] hwclock.sh
[ + ] kbd
[ + ] keyboard-setup
[ - ] killprocs
[ + ] kmod
[ + ] lightdm
[ + ] minecraft
[ - ] motd
[ - ] mountall-bootclean.sh
[ - ] mountall.sh
[ - ] mountdevsubfs.sh
[ - ] mountkernfs.sh
[ - ] mountnfs-bootclean.sh
[ - ] mountnfs.sh
[ + ] networking
[ - ] nfs-common
[ + ] ntp
[ - ] plymouth
[ - ] plymouth-log
[ + ] procps
[ + ] raspi-config
[ + ] rc.local
[ - ] rmnologin
[ - ] rpcbind
[ - ] rsync
[ + ] rsyslog
[ - ] screen-cleanup
[ - ] sendsigs
[ + ] ssh
[ - ] sudo
[ + ] triggerhappy
[ + ] udev
[ + ] udev-finish
[ - ] umountfs
[ - ] umountnfs.sh
[ - ] umountroot
[ + ] urandom
[ - ] x11-common
Ensuite si je tape la commande:
/etc/init.d/minecraft start
il affiche :
root@raspberrypi:/home/pi# /etc/init.d/minecraft start
Starting spigot-1.10.2.jar...
spigot-1.10.2.jar is now running.
root@raspberrypi:/home/pi#
Ce qui veux dire que à priori le serveur est démarré, mais je ne peux pas pour autant jouer à minecraft et encore moins afficher le "screen" correspondant à la session "serveur_minecraft"
Ensuite si je tape:
/etc/init.d/minecraft status
cela me donne
root@raspberrypi:/home/pi# /etc/init.d/minecraft status
spigot-1.10.2.jar is not running.
Merci pour tes infos et ton aide
Dernière modification par Gégé974 (Le 05/11/2016, à 15:03)
Hors ligne
#17 Le 05/11/2016, à 16:13
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Bon j'ai avançé
j'ai modifié la variable INVOCATION en rajoutant sudo
INVOCATION="sudo java -Xmx${MAXHEAP}M -Xms${MINHEAP}M -jar $SERVICE $OPTIONS"
j'ai modifié la ligne suivant dans la section start ou j'ai remplaçé "screen -dmS " par "screen -S"
as_user "cd $MCPATH && screen -h $HISTORY -S ${SCREENNAME} $INVOCATION"
je lance manuellement le serveur en passant par le service
/etc/init.d/minecraft start
le serveur démarre et j'ai accès au screen dans la session "pi"
Bémol quand même, le serveur minecraft ne démarre pas au redémarrage de Ubuntu (ici Raspbian)
peut-être y a t'il une autre commande que j'ai oublié en sachant que j'ai lançé aussi la commande:
update-rc.d minecraft defaults
puis en allant dans /etc/rc2.d j'ai bien le service qui apparait: S01minecraft
README S01motd S02dbus S02ssh S04plymouth
S01bootlogs S01rsyslog S02dphys-swapfile S03avahi-daemon S04rc.local
S01dhcpcd S01triggerhappy S02ntp S03bluetooth S04rmnologin
S01minecraft S02cron S02rsync S03lightdm
et si je vais plus loin par
ls -l /etc/rc2.d/
j'obtiens:
lrwxrwxrwx 1 root root 19 Nov 5 12:31 S01minecraft -> ../init.d/minecraft
Pour moi le service est considéré comme démarré et donc executé et pourtant...si je lance:
service minecraft status
j'ai
root@raspberrypi:/home/pi# sudo service minecraft status
● minecraft.service - LSB: Minecraft server
Loaded: loaded (/etc/init.d/minecraft)
Active: active (exited) since Sun 2016-11-06 08:55:55 UTC; 2h 42min ago
Process: 543 ExecStart=/etc/init.d/minecraft start (code=exited, status=0/SUCCESS)
Nov 06 08:55:48 raspberrypi minecraft[543]: Starting spigot-1.10.2.jar...
Nov 06 08:55:48 raspberrypi su[626]: Successful su for pi by root
Nov 06 08:55:48 raspberrypi su[626]: + ??? root:pi
Nov 06 08:55:48 raspberrypi su[626]: pam_unix(su:session): session opened for user pi by (uid=0)
Nov 06 08:55:48 raspberrypi minecraft[543]: Must be connected to a terminal.
Nov 06 08:55:55 raspberrypi minecraft[543]: Error! Could not start spigot-1.10.2.jar!
Nov 06 08:55:55 raspberrypi systemd[1]: Started LSB: Minecraft server.
donc j'ai la ligne:
Nov 06 08:55:55 raspberrypi minecraft[543]: Error! Could not start spigot-1.10.2.jar!
Merci pour vos aides précieuses
Dernière modification par Gégé974 (Le 06/11/2016, à 12:40)
Hors ligne
#18 Le 06/11/2016, à 19:45
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Ce que j'ai constaté c'est la commande suivante lancée manuellement fonctionne
/etc/init.d/minecraft start
Hors ligne
#19 Le 07/11/2016, à 20:56
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
si le service est lancé mais que l'interaction screen n'est pas fonctionnelle, c'est qu'il doit y avoir un probleme de configuration avec screen, ou la facon dont il est utilisé pour la session minecraft :
screen -r
ne fonctionne pas ?
http://minecraft.gamepedia.com/Tutorial … ript#Usage
http://doc.ubuntu-fr.org/screen
Hors ligne
#20 Le 12/11/2016, à 11:44
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Salut,
Alors si le server est démarré (j'ai du lancer le service à la main)
i@raspberrypi:~ $ screen -r minecraft_server
There is a screen on:
1560.minecraft_server (12/11/16 10:29:43) (Attached)
There is no screen to be resumed matching minecraft_server.
Si je fais
screen -x minecraft_server
celà fonctionne
Par contre je n'arrive pas à comprendre pourquoi le serveur Minecraft ne se lance pas au démarrage de Raspbian alors que le service est démarré, et pourquoi le serveur démarre correctement si je lance la commande suivante manuellement:
(voir posts précédents)
/etc/init.d/minecarft start
Par contre je me pose la question suivante:
Si je rajoute la ligne
/etc/init.d/minecraft start
à la fin du fichier "rc.local" se trouvant dans
/etc/
est ce que c'est autorisé ?
J'ai fais le test et ça ne passe pas, peut-être ai-je oublié quelque chose
voici le contenu de /etc/rc.local
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
sudo /etc/init.d/minecraft start
exit 0
Merci pour ton aide
Dernière modification par Gégé974 (Le 12/11/2016, à 13:33)
Hors ligne
#21 Le 12/11/2016, à 21:24
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
rc.local est possible mais pas aussi souple qu'avec un service init.d
Hors ligne
#22 Le 20/11/2016, à 11:46
- Gégé974
Re : Prob de redémarrage automatique serveur Minecraft Linux
Ok merci
Je poursuis mes tests
Afin de comprendre ce qui se passe, j'ai installé Ubuntu sur un serveur virtuel (en utilisant Hyper-V)
j'ai effectué les mêmes manipulation que précédemment, tout va bien, je lance minecraft manuellement, cela marche mais le problème reste identique, le serveur minecraft ne se lance pas au démarrage de Ubuntu
le statut du service me donne cela (service minecraft status)
root@gock-Virtual-Machine:/home/gock# service minecraft status
● minecraft.service - LSB: Minecraft server
Loaded: loaded (/etc/init.d/minecraft; bad; vendor preset: enabled)
Active: active (exited) since dim. 2016-11-20 11:32:20 CET; 9min ago
Docs: man:systemd-sysv-generator(8)
Process: 1196 ExecStart=/etc/init.d/minecraft start (code=exited, status=0/SUCCESS)
nov. 20 11:32:13 gock-Virtual-Machine systemd[1]: Starting LSB: Minecraft server...
nov. 20 11:32:13 gock-Virtual-Machine minecraft[1196]: Starting spigot-1.10.2.jar...
nov. 20 11:32:13 gock-Virtual-Machine su[1207]: Successful su for gock by root
nov. 20 11:32:13 gock-Virtual-Machine su[1207]: + ??? root:gock
nov. 20 11:32:13 gock-Virtual-Machine su[1207]: pam_unix(su:session): session opened for user gock by (uid=0)
nov. 20 11:32:20 gock-Virtual-Machine minecraft[1196]: spigot-1.10.2.jar is now running.
nov. 20 11:32:20 gock-Virtual-Machine systemd[1]: Started LSB: Minecraft server.
root@gock-Virtual-Machine:/home/gock#
donc le serveur parait être lancé et pourtant ce n'est pas le cas
Par contre si je fais
screen -r
on me demande mon mot de passe utilisateur et là le serveur est lançé et je peux jouer...
si quelqu'un peux m'éclairer je suis preneur
Merci à tous
Hors ligne
#23 Le 21/11/2016, à 20:33
- J5012
Re : Prob de redémarrage automatique serveur Minecraft Linux
avec la meme version optimisée de spigot ?
et si tu prenais une version officielle de minecraft ?
Hors ligne