#1 Le 14/07/2014, à 19:33
- Compte supprimé
[Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
Bonjour à tous !
Alors voilà, j'ai trouvé un petit script que j'ai modifié et configuré pour mon Serveur MineCraft. Il permet de démarrer celui-ci automatiquement :
#!/bin/bash
# /etc/init.d/minecraft
### 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: MineCraftServeur
# Description: Serveur MineCraft MineCraftServeur
### END INIT INFO
#Settings
SERVICE='MineCraftServeur'
USERNAME="utilisateur"
MCPATH='/home/utilisateur/Minecraft'
ME=`whoami`
as_user() {
if [ "$ME" == "$USERNAME" ] ; then
bash -c "$1"
else
su - $USERNAME -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est deja Demarre !"
else
echo "$SERVICE vas etre Demarre... Veuillez patienter 30 secondes..."
cd $MCPATH
as_user "cd $MCPATH && screen -S minecraft java -Xmx4024M -Xms1024M -XX:MaxPermSize=128M -jar Spigot.jar"
sleep 30
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est maintenant Demarre."
else
echo "$SERVICE ne peut pas etre Demarre."
fi
fi
}
mc_stop() {
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE vas etre Eteint... Veuillez patienter 30 secondes..."
as_user "screen -x minecraft -X eval 'stuff \"say Sauvegarde en cours...\"\015'"
as_user "screen -x minecraft -X eval 'stuff \"say Le serveur vas etre eteint dans 10 secondes...\"\015'"
as_user "screen -x minecraft -X eval 'stuff \"save-all\"\015'"
sleep 10
as_user "screen -x minecraft -X eval 'stuff \"stop\"\015'"
sleep 30
else
echo "$SERVICE est deja Eteint !"
fi
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE ne peut pas etre Eteint."
else
echo "$SERVICE est maintenant Eteint."
fi
}
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
status)
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est Demarre."
else
echo "$SERVICE est Eteint."
fi
;;
*)
echo "Usage: /etc/init.d/minecraft {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Je l'ai enregistrer dans /etc/init.d/minecraft, puis je l'ai rendu exécutable : chmod +x /etc/init.d/minecraft, et je l'ai ajouté au démarrage : update-rc.d minecraft defaults
Mais il ne se lance pas avec Ubuntu ! Et pourtant lorsque j’exécute /etc/init.d/minecraft start, il marche normalement !
Quelqu'un aurait une idée ?
Merci beaucoup !
Dernière modification par Bloufit (Le 15/07/2014, à 19:59)
#2 Le 14/07/2014, à 21:53
- J5012
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
et la commande : sudo service minecraft start|stop|status|restart fonctionne ?
si oui ,installe et utilise l'utilitaire bum (boot-up manager)
Hors ligne
#3 Le 14/07/2014, à 22:05
- Compte supprimé
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
Oui... Même très bien, c'est pratique !
J'ai installé BUM, mais j'ai cette erreur en lancant sudo bum :
Gtk-WARNING **: cannot open display: at /usr/lib/perl5/Gtk2.pm line 138.
Dernière modification par Bloufit (Le 14/07/2014, à 22:06)
#4 Le 14/07/2014, à 23:00
- J5012
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
et le lancement en graphique ?
d'apres qqs recherches sur gg, ca semble etre lie a perl5 qui n'arrive pas a creer l'interface gtk2 a partir de la console ?
Hors ligne
#5 Le 15/07/2014, à 12:48
- Compte supprimé
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
Euh... Ça je sait pas, mais j'ai pas d’interface graphique, je suis sous Ubuntu Server. (D'ailleur je suis sur 12.04, c'est peut être trop vieux ?)
Edit 1 : Au passage, es que c'est possible de faire en sorte que quand Ubuntu s’éteint, il exécute : service minecraft stop ?
Le but est en fait que tous les jours, le serveur se reboot (Avec Ubuntu).
Edit 2 : Aussi, j'ai pas trouvé local.rc dans etc. C'est normal ?
Edit 3 : J'ai presque résolu le problème... Enfin je l'ai contourné ! En fait je pense que Bash n'est pas pris en compte et que Sh me demande le MDP pour le as_user. Problème : je n'ai plus accès a la Screen maintenant car elle s’exécute en root.
Edit 4 : C'est bon ! En fait j'ai mis l'utilisateur en root. Merci quand même !
Quelqu'un a une idée ?
Dernière modification par Bloufit (Le 15/07/2014, à 19:59)
#6 Le 17/07/2014, à 01:06
- J5012
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
ubuntu server ?
c'est par la que tu aurais du commencer ! nous les repondeurs du forum on ne voit pas ce que vous avez comme config... on a besoin du contexte sans quoi les reponses se font pour une config generale de bureau ...
bum est inutile si tu n'as que le serveur , et ca explique donc le message d'erreur ... (bum necessite xorg pour fonctionner, et tout un tas de composants gui)
local.rc est considere comme obsolete ! inconvenients des tuto de la toile, le web a une longue memoire ...
techniquement pour qu'un service s'arrete proprement avec ubuntu, on cree un lien symbolique Kxy_nom-du-service de meme nom que pour demarrer Sxy_nom-du-service, respectivement dans les dossiers de demarrage et d'arret ...
generalement on ne fait pas cela manuellement pour eviter les conflits sur la precedence prioritaire des services essentiels ...
http://doc.ubuntu-fr.org/services#descr … s_services
http://doc.ubuntu-fr.org/services#logiciels
pour toi , il faudrait sysv-rc-conf ou rcconf
Hors ligne
#7 Le 17/07/2014, à 13:34
- Compte supprimé
Re : [Resolu] Script de demarre pas au Demarrage d'Ubuntu. Pourquoi ?
Merci des précisions ! (Je ferais gaffe la prochaine fois)
Juste, je sais absolument pas ce que j'ai fait, mais maintenant ça marche normalement... Je prend quand même note de ce que tu m'as dis, on sait jamais.
Dans la modifications de mon script, j'ai fait en sorte qu'il créé une screen sans y aller, pour pouvoir que les autres services se démarrent après.
Pour ceux qui sont intéressés :
#!/bin/sh -e
### BEGIN INIT INFO
# Provides: minecraft
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: MineCraft Serveur
# Description: Serveur MineCraft
### END INIT INFO
#Settings
SERVICE='MineCraft Serveur'
USERNAME="root"
MCPATH='/home/utilisateur/Minecraft'
ME=`whoami`
as_user() {
if [ "$ME" == "$USERNAME" ] ; then
bash -c "$1"
else
su - $USERNAME -c "$1"
fi
}
mc_start() {
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est deja Demarre !"
else
echo "$SERVICE vas etre Demarre... Veuillez patienter 30 secondes..."
cd $MCPATH
as_user "cd $MCPATH && screen -d -m -S minecraft java -Xmx4024M -Xms1024M -XX:MaxPermSize=128M -jar Spigot.jar"
sleep 30
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est maintenant Demarre."
else
echo "$SERVICE ne peut pas etre Demarre."
fi
fi
}
mc_stop() {
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE vas etre Eteind... Veuillez patienter 30 Secondes..."
as_user "screen -x minecraft -X eval 'stuff \"say Sauvegarde en cours et Arret/Redemarrage du Serveur... Deconnexion dans 10 secondes...\"\015'"
echo " Sauvegarde des Mondes..."
as_user "screen -x minecraft -X eval 'stuff \"save-all\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 9 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 8 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 7 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 6 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 5 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 4 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 3 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 2 secondes...\"\015'"
sleep 1
as_user "screen -x minecraft -X eval 'stuff \"say 1 secondes...\"\015'"
sleep 1
echo " Arret du Serveur..."
as_user "screen -x minecraft -X eval 'stuff \"say Arret/Redemarrage du Serveur...\"\015'"
as_user "screen -x minecraft -X eval 'stuff \"stop\"\015'"
sleep 30
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE ne peut pas etre Eteint."
else
echo "$SERVICE est maintenant Eteind."
fi
else
echo "$SERVICE est deja Eteint."
fi
}
mc_console() {
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
as_user "screen -x minecraft"
else
echo "La Console est indisponible"
exit 1
fi
}
case "$1" in
start)
mc_start
;;
stop)
mc_stop
;;
restart)
mc_stop
mc_start
;;
console)
mc_console
;;
status)
if pgrep -u $USERNAME -f Spigot.jar > /dev/null
then
echo "$SERVICE est Demarre."
else
echo "$SERVICE est Eteind."
fi
;;
*)
echo "MineCraft Serveur Serveur MineCraft."
echo "Commande : service minecraft {start|stop|restart|console|status}"
exit 1
;;
esac
exit 0