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 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 ! sad 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 ! smile

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