Script demarrage

Résolu/Fermé
toinou_du_63 - 17 oct. 2012 à 17:44
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 - 18 oct. 2012 à 00:09
Bonjour, nous avons moi et mon équipe acheté, il y a quelque jour un serveur dédié sous debian 6 afin de faire tourner notre serveur minecraft sous craftbukkit. Donc je me suis lancé dans la configuration de celui ci, mais la je me retrouve dans un impasse. C'est pour ce la que je viens vous demander de l'aide.
J'ai réussi à faire tourner le serveur, le problème est quand je veux le faire tourner en tant que service. J'ai donc creer un script que voici :

#!/bin/bash
# /etc/init.d/minecraft
# version 0.3.2 2011-01-27 (YYYY-MM-DD)

### BEGIN INIT INFO
# Provides: minecraft
# Required-Start: $local_fs $remote_fs
# 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='craftbukkit.jar'
USERNAME="root"
MCPATH='/home/minecraft'
INVOCATION='java -Xmx2048M -Xms2048M -jar craftbukkit.jar nogui'
BACKUPPATH='/home/minecraft/backup'

ME='whoami'
as_user() {
  if [ "$ME" == "$USERNAME" ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}

mc_start() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "Tried to start but $SERVICE was already running!"
  else
    echo "$SERVICE was not running... starting."
    cd $MCPATH
    as_user "cd $MCPATH && screen -dmS minecraft $INVOCATION"
    sleep 7
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is now running."
    else
      echo "Could not start $SERVICE."
    fi
  fi
}

mc_saveoff() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... suspending saves"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde en cours...\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sync
                sleep 10
        else
                echo "$SERVICE was not running. Not suspending saves."
        fi
}

mc_saveon() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... re-enabling saves"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Sauvegarde terminée!\"\015'"
        else
                echo "$SERVICE was not running. Not resuming saves."
        fi
}

mc_stop() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... stopping."
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say Arrêt du serveur dans 10 secondes!\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sleep 10
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
                sleep 7
        else
                echo "$SERVICE was not running."
        fi
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE could not be shut down... still running."
        else
                echo "$SERVICE is shut down."
        fi
}

#Start-Stop here
case "$1" in
  start)
    mc_start
    ;;
  stop)
    mc_stop
    ;;
  restart)
    mc_stop
    mc_start
    ;;
  status)
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is running."
    else
      echo "$SERVICE is not running."
    fi
    ;;

  *)
  echo "Usage: /etc/init.d/minecraft {start|stop|status|restart}"
  exit 1
  ;;
esac

exit 0


J'ai enregister ce script a l'emplacement suivant /ect/init.d/minecraft
Mais quand je veut rendre ce script exécutable grâce à la commande
chmod 755 /ect/init.d/minecraft
il me dit ça :
chmod: impossible d'accéder à « ect/init.d/minecraft »: Aucun fichier ou dossier de ce type

Je ne comprend pas pourquoi si quelqu'un ici si connait çela fait deux heures que je cherche mais en vain.
Merci



A voir également:

5 réponses

laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
18 oct. 2012 à 00:09
Bien joué !
C'est souvent une petite erreur de ce genre qui bloque le plus...

J'ai déjà vu un informaticien professionnel essayer de réparer pendant 2h la connexion ethernet d'un ordi dont le cable ethernet n'était tout simplement pas connecté au routeur.

Depuis, je crois qu'il faut commencer par les vérifications les plus bêtes... surtout quand elles semblent évidentes.
1
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
17 oct. 2012 à 18:32
Bonjour,

Commence par faire :
ls /etc/init.d/

Ton fichier minecraft devrait faire partie de la liste... Sinon, tu l'as enregistré ailleurs...

S'il est ailleurs tu le trouveras probablement en tapant :
updatedb
locate minecraft

Fait attention à l'orthographe des fichiers... il arrive que l'on fasse des fautes de frappe en enregistrant le nom d'un fichier.

De même pour ta commande chmod, vérifie entre autres que tu as bien tapé le / avant etc... L'erreur que tu as copié ici me fait croire que tu aurais pu l'oublié...

Bon courage,
0
toinou_du_63
17 oct. 2012 à 20:40
Le fichier minecraft est bien au bon endroit et je n'ai pas oublie le / avant ect vient de ressayer. ^^
0
laoshu Messages postés 1231 Date d'inscription mardi 7 juin 2011 Statut Membre Dernière intervention 24 mai 2015 350
17 oct. 2012 à 21:57
Dommage... ça aurait été trop simple sans doute...

Quels sont les droits associés si tu tapes :
ls -l /etc/init.d/minecraft

(Tu as peut-être vérifié, mais s'ils sont déjà à -rwxr-xr-x le chmod n'est pas nécessaire).

Sinon, essaye ainsi :
cd /etc/init.d
chmod 755 mine[tabulation]

Si l'autocompletion ne marche pas, c'est qu'il y a peut-être un problème dans le nom du fichier ; par exemple un espace insécable devant ou derrière les lettres. Ce qui provoquerait aussi une erreur de la commande ls indiquée plus haut.

Auquel cas, cherches ton fichier (toujour en étant dans /etc/init.d/ ) avec :
ls *minecraft*

Si ton fichier est la seule réponse, la solution sera :
mv *minecraft* minecraft

Bonne chance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toinou_du_63
17 oct. 2012 à 21:58
j'ai trouve erreur très conne je tape /ect au lieu de /etc
^^
0