Aller au contenu

[RESOLU] Commander une application à distance


Anozer

Messages recommandés

Bonjour à tous.

J'ai installé un petit Ubuntu Desktop sur un vieux PC que j'ai récupéré afin de faire tourner un petit serveur du jeu minecraft.

Ce serveur est en fait un simple fichier jar à lancer et à laisser tourner.

Première expérience Linux pour moi, j'en suis très content. Mais je reste un sacré débutant !

Je me suis donc fait un petit script bash pour le lancer facilement, et le laisse tourner en mode console (ctrl alt F1).

Ça marche très bien.

Mais j'aurais souhaité pouvoir accéder à ce serveur à distance, et lui passer des commandes simples (ban, kick, say, etc..).

J'ai donc repéré deux solutions : VNC et SSH.

Avec VNC, je ne peux pas accéder à ce que je fait sur une console, mais uniquement sur l'interface graphique. Bon, pas grave, je peux lancer le serveur dans un terminal. Mais VNC a tendance à être lent, et à manger beaucoup de ressources... C'est un vieux PC et la quasi-totalité des ressources est déjà occupée par le serveur du jeu. Je ne peux donc pas me le permettre vu l'âge du PC.

Avec SSH, c'est parfait, j'arrive à me connecter... Mais ensuite, je n'ai aucune idée de comment je pourrais accéder à cette application lancée. J'aimerais simplement lancer des commandes sur ce serveur depuis un autre PC, mais je n'ai aucune idée de comment faire.

Auriez-vous une idée ou une autre solution ?

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Tu as bien dit que tu lançais le serveur en mode console?

Actuellement tu gère comment ces commandes? Via ta console?

Si oui, via ssh, en gros tu te retrouve comme si tu avais ta console de ton serveur mais directement sur ton pc.

Par exemple, j'ai un serveur qui héberge mon blog, lorsque je veux redémarrer mon serveur PHP, je lance mon ssh et lance la commande nécessaire pour :D

Après je ne connais pas ton jeu donc je peux pas trop t'aider si tes fonctions d'admin sont faites via un logiciel ;)

Lien vers le commentaire
Partager sur d’autres sites

En fait, l'application est lancée depuis la console et reste en ligne de commande. Je la controle effectivement depuis la console.

J'ai éteint le PC pour ce soir, mais l'application fonctionne exactement de la même façon sur mac, alors voici un screen :

1302557805.jpg

En allant sur la page de "Screen", je lis déjà "La possibilité de partager un terminal avec un autre utilisateur, idéal pour aider un utilisateur distant."

Ça risque de m'intéresser. Je vais donc potasser de ce coté là.

Merci, je reviens vers vous quand j'aurais un peu avancé ! :)

Lien vers le commentaire
Partager sur d’autres sites

screen permet de lancer n'importe quel processus dans un shell "daemon", parfait pour ton cas. A tout moment, tu peux passer des commandes au shell en question, le repasser en "avant-plan", etc. C'est diablement pratique, je m'en sers pour les serveurs cod, et sur mon serveur perso, pour lancer les machines virtualbox.

Et pas besoin de VNC comme ça.

Lien vers le commentaire
Partager sur d’autres sites

Pour être franc y a un truc que j'ai pas capté, tu utilises pas screen pour le contrôle à distance hein? ou alors j'ai loupé une étape (matin toussa)

Tu lance une commande qui ouvre une application, tu ferme la connexion ssh, et donc le terminal, l'application se ferme.

Screen permet d'éviter ça.

Lien vers le commentaire
Partager sur d’autres sites

Pour être franc y a un truc que j'ai pas capté, tu utilises pas screen pour le contrôle à distance hein? ou alors j'ai loupé une étape (matin toussa)

Tu lance une commande qui ouvre une application, tu ferme la connexion ssh, et donc le terminal, l'application se ferme.

Screen permet d'éviter ça.

Oui je sais ça. Donc j'avais bien raté un truc. Parce qu'à la base il demande comment gérer a distance.

C'est vrai que j'avais pas pensé à screen :transpi:

Et puis :resolu::siffle:

Lien vers le commentaire
Partager sur d’autres sites

Oups, j'avais effectivement oublié le "résolu". Toujours pas eu ma dose de sommeil. :)

Je voulais effectivement administrer mon serveur à distance sauf que ce serveur est une appli ouverte en permanence. Donc inaccessible en ouvrant simplement SSH.

Screen fonctionne parfaitement, notamment avec l'option -x. Ca me permet de ne pas fermer le screen sur le ubuntu.

J'ai jeté un coup d'oeil à nx nomachine, et je trouve ça bien compliqué pour mon utilisation, comparé à screen. Ceci dit, il a ses avantages. Je m'en servirai peut être. Je garde sous la main.

-hardcorgamer- : mon serveur est privé. Le PC est vraiment limite, et je ne pense pas qu'il supportera beaucoup de connexions. Il faut d'ailleurs que je récupère quelques barrettes de ram avant de lancer le tout "officiellement" pour mes 4 amis et moi. Je t'aurais bien invité jeter un coup d'oeil (étant donné que tu m'a bien aidé à monter ma config :D) mais je n'ai pour l'instant pas assez de ram pour le laisser tourner.

J'attend également qu'une pièce se libère chez moi pour caler le PC et le laisser tourner 24/7, jusqu'à ce qu'il meure...

Il ne me restera plus qu'à tester SSH sur Windows 7, et ça roulera.

Lien vers le commentaire
Partager sur d’autres sites

  • 4 semaines après...

Hello, ça fait maintenant un mois que j'utilise la commande screen, et ça marche du tonnerre. SSH + SFTP, c'est parfait.

Cependant, je cherche à améliorer mon serveur. Ces derniers jours j'ai eu de nombreuses coupures de courant, et je souhaite relancer le tout automatiquement.

J'ai donc trifouillé dans BIOS pour le redémarrage automatique, mais c'est ensuite que ça coince.

Je cherche à :

Lancer un script au démarrage, qui crée un screen

Lancer une commande dans ce screen

Détacher le screen (si il est attaché)

Je n'ai pas encore cherché comment lancer un script au démarrage, mais ça, ça ne doit pas être bien compliqué. Le problème est de lancer une commande dans un screen spécifique. Là je suis perdu, je n'y arrive pas. Est-ce possible ?

J'espère que vous pourrez m'aider. :|

Lien vers le commentaire
Partager sur d’autres sites

tu peux à la fois créer le screen, lancer une commande dedans, et le détacher : il suffit de le lancer de la forme :

$ screen -dmS nom_du_screen script_a_lancer

Ça le lancera directement en mode daemon (donc en arrière-plan, détaché). Les commandes pour le ramener en avant plan sont dispos dans la page de manuel, mais perso, pour arrêter un serveur, j'utilise la commande 'screen -dr nom_du_screen -X quit' : le -dr ramène le screen au premier plan, le -X permet d'envoyer une commande directement après l'avoir rattaché. Dans le cas du serveur cod, la commande quit termine simplement le programme.

Pour le démarrage auto, je me débat avec Debian Squeeze pour que insserv reconnaisse mes scripts de démarrage, malgré leur similitude avec le squelette (j'ai toujours des erreurs avec les LSB tags, qui sont pourtant là). Sur Ubuntu par contre, je sais pas trop ce qu'ils utilisent comme mécanisme. J'aurais du mal à t'en dire beaucoup plus (j'utilise que du Debian en serveur, et ceux sous lenny ne rechignent pas à lancer mes scripts au démarrage).

Lien vers le commentaire
Partager sur d’autres sites

Tout simplement parfait !

Je fais donc un :

screen -dmS minecraft bash ~/minecraft/start.sh

mon screen se lance bien avec le bon nom

mon script se lance dans le screen

Il ne me reste plus qu'à voir comment faire ça au démarrage, mais ça doit pas être compliqué. Dans le pire des cas, j'essaierai de faire un truc en C.

Merci seboss666 !

Lien vers le commentaire
Partager sur d’autres sites

Tout simplement parfait !

Je fais donc un :

screen -dmS minecraft bash ~/minecraft/start.sh

mon screen se lance bien avec le bon nom

mon script se lance dans le screen

Il ne me reste plus qu'à voir comment faire ça au démarrage, mais ça doit pas être compliqué. Dans le pire des cas, j'essaierai de faire un truc en C.

Merci seboss666 !

Pour le démarrage, je dirais un script dans /etc/init.d/ du genre

/etc/init.d/minecraft

basé sur un script dans /etc/init.d existant (exemple trouvé sur le net (lui meme basé sur celui de tomcat) :

http://stackoverflow.com/questions/1740414/how-to-write-init-script

En gros, il faut un start, un stop, et vala :)

Ensuite tu feras un petit

sudo update-rc.d minecraft defaults

Pour qu'il configure le démarrage automatique par défaut

(explication rapide : au démarrage, tu peux etre sur plusieurs niveau d'init, de 0 a 6 (0 étant eteint, et 6 reboot si je ne dis pas de conneries), par défaut, tu démarreras sur du niveau 3 ou 4 (multi user et reseau activé si je me rappelle bien), donc le systeme va regarder dans le repertoire /etc/rc3.d/ ou /etc/rc4.d/ et si il voit S60minecraft-server, il va démarrer (S : start) minecraft serveur en position 60 sur la liste des services a démarrer. (un K60 sera pour Killer un service en position 60)

Lien vers le commentaire
Partager sur d’autres sites

16ar : informations très utiles, que je garde sous la main. Je te remercie. Seulement j'ai trouvé plus simple dans mon cas (mais probablement plus limité). En effet sur Ubuntu, du moins en 11.04, se trouve l'application Système/Préférences/Application au démarrage

J'ai simplement eu à renseigner le chemin de mon script que j'ai modifié pour l'occasion, en y intégrant la commande d'ouverture du screen.

Pour ce qui est de l'onduleur, le but de ce serveur est qu'il ne coute rien. J'ai donc récup un vieux PC, de la ram et un DD au boulot, installé une distrib Linux...

Etant donné qu'un onduleur coute entre 50 et 150¤, on va éviter ! :transpi:

D'ailleurs, je préférerais en avoir un sur mes autres ordinateurs. Mais l'idée est bien entendu beaucoup plus "logique".

Lien vers le commentaire
Partager sur d’autres sites

Attention, les applications au démarrage ne le seront seulement si tu te connectes via l'interface graphique. Or normalement, le but d'un service comme le tien est de redémarrer et de lancer minecraft automatiquement, sans que tu sois obligé de te connecter de manière graphique ;)

Lien vers le commentaire
Partager sur d’autres sites

Au départ je voulais justement me passer de l'interface graphique. Mais j'ai rencontré trois problèmes.

Le 1er : ce n'est pas facile à configurer ! À part en utilisant Ubuntu Server qui lui est prévu ainsi.

Le 2e : la configuration du wifi est particulièrement prise de tête. Je trouve ça incroyablement chiant de configurer les connexions en WPA2. Déjà qu'en interface graphique c'est pas la joie (avec ouverture de session auto)...

Le 3e : quand j'ai de gros soucis ou que je ne sais plus comment me dépatouiller, j'utilise VNC.

C'est bien entendu tout a fait possible, mais je n'ai pas trop envi de me casser ma tête sur des configs de ce genre.

Ceci dit, si le serveur commence à ramer à force d'installer des fonctionnalités, j'y penserai.

Je vais notamment y mettre LAMP, ça va pas aider.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...