|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 51 ![]() |
Bonjour à tous,
Je débute complétement sous linux et je bloque sur un problème. Je lance sur une distribution Ubuntu Dapper un serveur de jeux. Jusque la, tous va bien. Je lance ensuite un deuxième serveur sur un second port. Tout fonctionne à merveille. Je regarde donc à l'aide de la commande # top les processus en cours d'exécution et je vois bien mes 2 serveurs fonctionner. PID : 2885 - COMMAND : HLDS_I486 PID : 2888 - COMMAND : HLDS_I486 Mon problème : Je souhaiterais que si un des serveurs plante, il soit automatiquement remis en route par le serveur. J'ai donc trouver ce script sur le net : Code :
Donc, je voudrai renommer l'application lancée selon le numéro du serveur : HLDS_I486_Serveur 1 HLDS_I486_Serveur 2 Jusque la, pas de soucis je pense savoir faire mais je ne suis pas sur que cela va fonctionner. Donc, pour surveiller mes applications voici le script que je pense écrire : Code :
Si il ne l'est pas pourriez vous m'indiquer mes erreurs et éventuellement me le réécrire correctement. 2ème Question/ Le PID d'un processus est il toujours le même ? Si tel est le cas, ne serait il pas plus simple de vérifier que le serveur est en route par le numéro de son processus ? et si oui, quel script dois je utiliser. Merci d'avance pour vos réponses. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre éprouvé
![]() Inscription : mars 2002 Messages : 401 ![]() |
Tu pourrais faire comme suit :
Code :
Sinon tu peux surveiller le processus en utilisant /proc/$PID/status !
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/ |
||
|
|
00
|
|
|
#3 | ||
![]() Inscription : mars 2004 Messages : 1 298 ![]() |
Une solution elegante consiterai a ajouter ton appliquation au fichier /etc/inittab en mode respawn :
Code :
le 2eme un run level (ou plusieur ici 3 et 5) ou l'application doit etre lancer et surveillé par init le 3eme le mode de lancement respawn correspondant a ce que tu desire : si le process se termine (anormalement ou pas) il est relancé le 4eme c'est la commande avec ces eventuelle parametre Attention toutefois, si l'application plante (bug par exemple) elle serra relancée et replanterra .... at vitam eternal ........ |
||
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() Inscription : avril 2006 Messages : 922 ![]() |
La solution de MarcG est la meilleure, à mon sens. En l'utilisant le système gérer le processus, tu le laisses entre de bonnes mains
Citation:
Et c'est heureux, sinon tu ne pourrais lancer qu'un nombre limité (et pas par les ressources !) de processus sur ton PC
__________________
[alkama] quelqu'un est allé voir la guerre des mondes? [@Chrisman] j'espère pour spielberg --- bashfr.org |
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 51 ![]() |
Bon, je viens de modifier mon inittab de trois façons différentes :
app1:35:respawn:/usr/local/games/hlds/servhl101/./hlds_run -console -game cstrike -port 27015 +map de_dust2 +maxplayers 21 app1:35:respawn:/usr/local/games/hlds/servhl101/hlds_run -console -game cstrike -port 27015 +map de_dust2 +maxplayers 21 app1:35:respawn:/usr/local/games/hlds/servhl101/./hlds_run -console -game cstrike -port 27015 +map de_dust2 +maxplayers 21 & app1:35:respawn:/usr/local/games/hlds/servhl101/hlds_run -console -game cstrike -port 27015 +map de_dust2 +maxplayers 21 & Ca ne fonctionne pas. grrr... Quelqu'un aurait il une idée ? |
|
|
00
|
|
|
#6 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 51 ![]() |
Encore une autre petite question, plutôt que de faire une boucle, j'ai éventuellement l'idée de créer une tache crontab qui regarderait si le pidfile est présent et si oui, il ne fait rien et sinon, il redemarre le script.
Le hic... Y'a tjrs un hic... Quelle commande utiliser dans mon script pour créer un pidfile du nom de mon appli par exemple : app1.pid et tout ca dans le dossier /var/run/ Voila. Merci d'avance pour vos réponses. |
|
|
00
|
|
|
#7 | ||
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 51 ![]() |
alors pour le inittab, j'ai réussi en lançant un script bash plutôt que mon appli
problème, la ressource processeur monte en flèche donc je suis reparti avec ma boucle infinie mais problème, j'ai ce message qui s'affiche : line 6: syntax error: unexpected end of file Voila le détail du script : Code :
|
||
|
|
00
|
|
|
#8 | |||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 922 ![]() |
Citation:
__________________
[alkama] quelqu'un est allé voir la guerre des mondes? [@Chrisman] j'espère pour spielberg --- bashfr.org |
|||
|
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Inscription : novembre 2005 Messages : 51 ![]() |
C'est une boucle infinie, elle ne se termine pas.
Ce scprit devrait redemarrer automatiquement le serveur au cas ou un utilisateur arreterais le serveur. Car si on envoie la commande pour arreter le serveur, celui ci s'arrete et ne redemarre pas. C'est pour cela que je souhaite reussir à faire fonctionner ce script. |
|
|
00
|
|
|
#10 | |||
|
Membre Expert
![]() Inscription : avril 2006 Messages : 922 ![]() |
Citation:
Il manque la fin du WHILE. La syntaxe est : Code :
__________________
[alkama] quelqu'un est allé voir la guerre des mondes? [@Chrisman] j'espère pour spielberg --- bashfr.org |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com