Salut!
Il se trouve que je suis aussi en train de monter un serveur pour Minecraft, un tout petit serveur privé juste pour l'aventure (ouah!, l'aventure de ouf malade! 😃)
J'ai des soucis, mais pas les mêmes que toi Koshie.
Pour lancer ton serveur Minecraft, voici un petit script qui marche très bien pour moi :
#!/bin/bash
screen -dmS minecraft java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui
Dans cette commande, le screen se lance détaché, je trouve ça plus pratique, mais c'est comme tu le sens. Il faut executer le script depuis le dossier ou se trouve le fichier minecraft.jar sinon marche pas. tu peux toujours rajouter un "cd ton_chemin_vers_le_bon_dossier" avant et un "cd ~" après.
En cherchant un peu partout sur le net, j'ai trouvé des gens qui gèrent leur serveur en tant que service. J'ai trouvé l'idée bien intéressante et je me suis lancé dans l'aventure.
Le but de la manoeuvre serait:
- me lever le matin, appuyer sur le bouton d'un pc avec fedora 14 dessus et le serveur minecraft, il s'allume, le serveur se lance proprement.
- je fais ma vie pendant la journée.
- le soir je me couche, j'appuie à nouveau sur le bouton du pc en question, le serveur minecraft se coupe proprement, le pc s'éteind, et à demain.
- le tout, sans avoir besoin de clavier, de souris ou de moniteur.
Dans mon service, il me faut donc au minimum une fonction pour démarrer le serveur mincraft, et une fonction pour l'arrêter (on en rajoutera d'autre plus tard si ca le fait 🙂 )
j'ai donc fait un petit script, que j'ai placé dans le dossier /etc/init.d et rendu executable. A partir de là, j'ai tatonné un peu, en glannant des infos à droite et à gauche. Si je me gourre pas, il faudrait que mon service se lance au niveau 5, en tout dernier au démarrage de l'ordinateur, et qu'il s'arrête en tout premier à l'arrêt. j'ai donc écrit ce qu'il faut pour ça dans mon script et ajouté le service avec "chkconfig". En vérifiant, je vois bien que le service est réglé pour être en marche au niveau 5, et que mon service et mon serveur démarrent comme je le désire. Je me dis que finalement chui pas trop bête.
Revenons au script :
la fonction pour démarrer le serveur fonctionne correctement, dans un terminal, je tape :
$ service minecraft start
et je me retrouve avec un screen détaché dans lequel tourne mon serveur minecraft, auquel je peux accéder sans soucis.
C'est la fonction d'arrêt qui me pose problème. pour arrêter le serveur minecraft, il faut lui donner la commande "stop".
A la main, je rattache mon screen, j'envoie la commande stop au serveur, il fait sa sauvegarde et s'arrête, le screen se termine, retour à l'invite de commande.
Du coup je recherhe un moyen, depuis l'invite de commande, d'envoyer cette fonction "stop" au serveur, dans le screen détaché afin de l'intégrer à la fonction stop de mon service.
J'ai essayé ça :
screen -S minecraft -X stop
mais le screen me répond qu'il ne connait pas la commande stop.
Je viens donc vers vous Ô dieux du wired en quête d'aide et d'assistance dans cette aventure.