Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/10/2016, à 10: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, à 10:34

J5012

Re : Prob de redémarrage automatique serveur Minecraft Linux

screen -S serveurminecraft -X cmd

http://linuxcommand.org/man_pages/screen1.html

Hors ligne

#3 Le 23/10/2016, à 01: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, à 01:29)

Hors ligne

#4 Le 23/10/2016, à 12: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, à 12:15)

Hors ligne

#5 Le 24/10/2016, à 07: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, à 09: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, à 12: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, à 23: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, à 19: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, à 21: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, à 21:52)

Hors ligne

#11 Le 28/10/2016, à 10: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, à 11:02)

Hors ligne

#12 Le 29/10/2016, à 16: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 31/10/2016, à 00: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, à 14: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  ?

J5012 a écrit :

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, à 20: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, à 12: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, à 16:03)

Hors ligne

#17 Le 05/11/2016, à 17: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, à 13:40)

Hors ligne

#18 Le 06/11/2016, à 20: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, à 21: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, à 12: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, à 14:33)

Hors ligne

#21 Le 12/11/2016, à 22: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, à 12: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, à 21: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