CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Lancer une application avec Debian

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 18:24:12

Bonjour,
J'ai un serveur dédié sous Debian, et je voudrais savoir comment lancer un fichier Linux avec PHP.
(Je suis vraiment tout nouveau en Linux/Debian...) enfin bon, meric de vos futurs réponses !

chris_27
chris_27
Niveau 10
08 avril 2010 à 18:30:21

Bonjour,

J'étais justement en train de dire :
https://www.jeuxvideo.com/forums/1-47-47959-1-0-1-0-comment-lancer-un-executable-avec-ssh.htm#message_47970
mais nos messages se sont croisés. :(

Au passage, je rajouterai : donne un exemple concret.

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 18:33:40

D'accord, je vais être plus précis alors ^^

Je veux donc heberger mon serveur de jeux sur mon serveur dédié qui est sous Debian.
J'ai hebergé mon site sur ce serveur.
Pour démarrer mon serveur de jeu, je dois lancer le fichier xxx.
Donc je souhaite que si je clique sur un bonton, que je scripterais en PHP, le fichier xxx démarre.
Mais je n'ai aucune idée de comment le démarrer, comment l'éteindre, et comment vérifier si il est allumé ou éteint.

Donc voilà, si vous avez besoin de plus d'infos, dîtes le moi :s

chris_27
chris_27
Niveau 10
08 avril 2010 à 18:39:33

En résumé, tu cherches à mettre en place un daemon (le serveur pour ton jeu) ainsi qu'une interface en PHP pour le piloter. Vaste projet.

On va donc le faire en plusieurs temps :
1) on essaie de faire marcher le serveur à la main.
2) on daemonise le truc.
3) on fait une interface web en PHP pour monitorer/piloter le daemon.

Commençons donc par le 1). Pour ça, j'ai encore besoin d'une information capitale : est-ce que le jeu fournit de quoi lancer un serveur ? Si oui, qu'est-ce qui est fourni ?
Accessoirement : est-ce que le serveur de ce jeu à une version linux (sans quoi ton plan risque fort de tomber rapidement à l'eau) ?

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 18:54:08

Alors, oui, mon serveur de jeu a une version Linux. Pour faire démarrer ce serveur de jeu, je dois démarrer un fichier, qui est sous windows .exe, mais sous linux y a pas d'extension ^^.
Donc j'ai déjà l'interface Web, il ne me reste plus que la commande pour lancer le serveur, j'ai déjà trouver quelque chose, mais j'ai pas encore tester :

shell_exec('cd
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux');
shell_exec('./fichierjeu');

fichierjeu est donc mon fichier à lancer pour faire tourner mon serveur de jeu.
J'ai pas encore tester, mais je vais le faire.

chris_27
chris_27
Niveau 10
08 avril 2010 à 19:01:40

« mais sous linux y a pas d'extension ^^. » :d) alors là, ça me soulage de lire ça. Finalement, il y a des chances pour que ça marche.

À mon avis (mais j'y connais absolument rien en PHP) ton bout de code ne marchera pas car les deux commandes vont être exécutées dans deux "shells" différents.
Ensuite, même en admettant que ça marche, ça te permet tout juste de lancer le serveur, mais ça s'arrête là. Impossible de savoir si le serveur est lancé, et impossible de l'arrêter. Pour faire ça, en général, on utilise un script appelant la commande start-stop-daemon. Voici un exemple de script (c'est celui qui me permet de lancer bimbo, un bot irc pour piloter la radio de l'école) :
http://wall.deblan.fr/x91a/bash/1/

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 19:09:17

Alors, je viens de tester, et voilà ce qu'il me dit :

Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in
/var/www/vhosts/domain.fr/httpdocs/Panel/etatserve
ur.php on line 6

Warning: shell_exec() [function.shell-exec]: Cannot execute using backquotes in Safe Mode in
/var/www/vhosts/domain.fr/httpdocs/Panel/etatserve
ur.php on line 7

Les lignes 6 et 7 sont donc les shell_exec.
Bon, ensuite, j'ai pas très bien compris ce que tu as dit en "2eme partie".
Mais bon, pour savoir si le serveur est lancé, on pourrait peut être vérifier si il est dans la liste des processus ouvert ? (Ne te moque pas, je ne m'y connais pas très bien ^^, mais j'ai vu que l'on pouvait voir la liste des processus ouverts dans SSH.)

chris_27
chris_27
Niveau 10
08 avril 2010 à 19:21:14

Désolé, j'ai pas trop le temps de rentrer énormément dans les détails. Mais j'insiste sur le fait que tu vas galérer pour arriver à tes fins si tu ne suis pas dans l'ordre :

«
1) on essaie de faire marcher le serveur à la main.
2) on daemonise le truc.
3) on fait une interface web en PHP pour monitorer/piloter le daemon.
»

On est déjà pas certain que le 1) marche, et toi tu te bats sur le 3). C'est pas gagné.
Quand au script que j'ai pointé, il répond au 2) (modulo quelques légers changements pour adapter à l'exécutable que tu cherches à lancer).

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 19:30:16

Ok, bah j'ai pas trop compris à ce que tu avais fait, et je comprend pas trop le sens de 'daemon'.
Enfin, je vais déjà essayer de le faire marcher avec SSH. Mais je vois pas trop comment m'y prendre. Enfin, j'ai déjà fait ça :

/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu start

voilà ce qu'il me répond :

-bash:
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu: Permission denied

Pourtant, j'ai tous les pouvoirs dans le dossier où ce trouve fichierjeu...

chris_27
chris_27
Niveau 10
08 avril 2010 à 20:09:23

« je comprend pas trop le sens de 'daemon'. » :d) c'est juste un mot technique pour résumer ce que tu cherches à faire, à savoir faire tourner une application type serveur sur une machine.

Pour ton problème. Que donnent :

$ ls -l
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu

$ file
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu

$ head -n 1
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu

? (chacune des commandes étant bien entendu sur une seule ligne).

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 20:17:14

1) -rw-r--r-- 1 gtahebergftp123 psacln 1016185 Apr 8 17:55
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu

2)
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.8, dynamically linked (uses shared libs), stripped

Et la dernière m'a parru un peu bizzare.

La console m'a écrit :

head -n 1
/var/www/vhosts/kl¨¶D.fr/httpdocs/Panel/serveurs/L
inux/fichierjeu
èèD)D)Qåtd/lib/ld-linux.so.2GNº1®%/ !b·¢WE8 L² ¬´\mS¡Iª¯ $y3±p&

et m'a écrit là où je tape : PuTTYPuTTYPuTTY

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 20:22:58

J'ai oublié un petit truc :
Quand je lance mon serveur de jeu sur mon PC qui est sous Windows, je dois ouvrir mes ports pour que je puisse m'y connecter. (et les autres aussi) Bref, je sais pas si il faut les ouvrir sous Linux, j'en sais encore moins si il faut ou c'est possible des les ouvrir sous un serveur dédié, et si c'est vraiment nécéssaire.

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 20:42:12

Ah, j'ai remarqué que en fait mon fichier n'était pas en chmod 777... donc je l'ai mit en 777 et maintenant quand j'essaye de le lancer via SSH :

Segmentation fault

Je me suis renseigné sur Google et ça me dit que l'application tente d'accéder à un espace qui ne lui est pas alloué.
Comment savoir quel espace veut il avoir accès ?

chris_27
chris_27
Niveau 10
08 avril 2010 à 20:42:50

« ELF 32-bit LSB executable » + « -rw-r--r-- » = FAIL.

si c'est un exécutable, il doit avoir le mode +x. Et vu que tu vas vouloir le lancer via une interface PHP, tu veux peut-être même que tout le monde ait ce mode +x :

$ chmod a+x
/var/www/vhosts/domain.fr/httpdocs/Panel/serveurs/
Linux/fichierjeu

« ELF 32-bit LSB executable » + « /var/…/Linux/fichierjeu start » :d) c'est assez étrange ça. D'habitude, on n'a pas besoin de rajouter "start" à la commande. À voir.

Pour la commande avec head, c'est normal que ça ait affiché n'importe quoi. Je ne pensais pas que le fichier était un binaire.

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 20:56:06

Tu n'as pas vu le message que j'ai posté juste au dessus, j'ai mit la permission +x, mais j'ai toujours un problème quand je le lance via SSH :

Segmentation fault

deepblue
deepblue
Niveau 16
08 avril 2010 à 20:58:45

Remarque en passant : plesk est une belle daube et un nid à emmerdes.

chris_27
chris_27
Niveau 10
08 avril 2010 à 21:02:39

Non, je ne l'ai pas vu. Et heureusement que je passe mes nerfs sur autre chose…

« donc je l'ai mit en 777 » :d) et c'était particulièrement stupide. <censure> !
Si tu laisses des droits en écriture sur ce fichier, attends-toi à ce que quelqu'un change l'exécutable en un virus avant de profiter du +x pour tuer ton serveur. Honnêtement, si ça arrive, tu ne l'auras pas volé !

Sinon, si ça segfaulte, je crois que tu es bon pour laisser tomber. Oublie ce que google dit, ce phénomène est beaucoup plus subtile que ça. Il existe des outils pour diagnostiquer précisément d'où vient le problème, l'ennui c'est que ton binaire n'est sans doute pas compiler avec les options de débogage, et que même si c'est le cas, tu ne pourras pas faire plus que du diagnostic vu que je suppose que tu n'as pas accès au code source. :(

godrik
godrik
Niveau 30
08 avril 2010 à 21:14:02

dans ces trucs la, la seg fault vient assez souent d'un probleme d'installation. Relis ton document d'installation du logiciel precisement et fait ce qu'il te dit de faire.

]-HellFurry
]-HellFurry
Niveau 9
08 avril 2010 à 21:17:03

En fait, fichierjeu appelle le Gamemode, qui est scripté par moi, et qui est complétement scripté sous Windows, et j'ai jamais testé sous Linux, donc à mon avis c'est à cause de ça... Je vais essayer des scripts codés sous Linux.
Enfin bon, merci beaucoup de ton aide Chris !

godrik
godrik
Niveau 30
08 avril 2010 à 22:00:46

verifie si le serveur de base sans tes script fonctionnent

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment