Précédent   Forum du club des développeurs et IT Pro > Systèmes > Linux > Shell et commandes GNU
Shell et commandes GNU Vos questions sur l'utilisation des commandes shell. Manuel Linux
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/02/2013, 02h12   #1
valoub21
 
Inscription : février 2013
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 3
Points : -1
Points : -1
Par défaut Conversion d'un .bat en .sh

Bonjour,

Voilà j’héberge un serveur de jeux programmé sur java qui se lance en .bat sur Windows.

Depuis quelque jours j’ai commandé un dédié sous linux (Debian 6) Pour de meilleur performance.

Le problème c’est que les .bat ne ceux lance pas sur linux.

Pourriez-vous m’aider s’il vous plait et me dire si la convention que j’ai effectuée est correcte ou s’il y a des changements à faire ?

Code Windows (.bat):

Code :
1
2
3
4
5
6
7
8
9
10
 
@echo off
color 3
title  ~ "Serveur" ~ : ON
: loop
echo (%date%) (%time%) Le Serveur a correctement demarrer !
"C:\Program Files\Java\jre7\bin\java" -jar -Xms500m -Xms500m coeur.jar"
echo (%date%) (%time%)
echo /!\ ATTENTION : Le serveur a crash, redemarrage automatique /!\
goto loop
Ce que j'ai compris (sans le reboot automatique ) :
Code :
1
2
3
4
5
6
 
#!/bin/bash
while :
do
-jar -Xms500m -Xms500m coeur.jar
done
Puis les commandes a faire sur linux:

Code :
1
2
3
 
[ #] chmod +x coeur.sh
[ #] ./coeur.sh
Merci à ceux qui prendrons le temps de lire mon poste.
Cordialement Valentin.
valoub21 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 23/02/2013, 10h29   #2
Sve@r
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 495
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 45
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 495
Points : 6 604
Points : 6 604
Citation:
Envoyé par valoub21 Voir le message
Bonjour,

Voilà j’héberge un serveur de jeux programmé sur java qui se lance en .bat sur Windows.

Depuis quelque jours j’ai commandé un dédié sous linux (Debian 6) Pour de meilleur performance.
Salut
Tu as eu tout a fait raison

Citation:
Envoyé par valoub21 Voir le message
Le problème c’est que les .bat ne ceux lance pas sur linux.
Normal, batch et shell ce n'est pas le meme langage...

Citation:
Envoyé par valoub21 Voir le message
Pourriez-vous m’aider s’il vous plait et me dire si la convention que j’ai effectuée est correcte ou s’il y a des changements à faire ?

Code Windows (.bat):

Code :
1
2
3
4
5
6
7
8
9
10
 
@echo off
color 3
title  ~ "Serveur" ~ : ON
: loop
echo (%date%) (%time%) Le Serveur a correctement demarrer !
"C:\Program Files\Java\jre7\bin\java" -jar -Xms500m -Xms500m coeur.jar"
echo (%date%) (%time%)
echo /!\ ATTENTION : Le serveur a crash, redemarrage automatique /!\
goto loop
Ce que j'ai compris (sans le reboot automatique ) :
Code :
1
2
3
4
5
#!/bin/bash
while :
do
-jar -Xms500m -Xms500m coeur.jar
done
Deja tu peux remplacer while : par while true (plus parlant). Ensuite faut penser a lancer java car pour l'instant, tu ne lances que -jar ce qui ne veut rien dire.
Toutefois je ne comprends pas pourquoi tu boucles en permanence. Ca veut dire que si coeur.jar s'arrete, tu le relances aussitot ?

Moi je tenterais un truc de ce genre
Code :
1
2
3
4
5
6
7
#!/bin/bash
while true
do
    java -jar -Xms500m -Xms500m coeur.jar; status=$?
    test $status -eq 0 && break
    echo "Le serveur a ete interrompu - Relancement automatique"
done
En shell, la variable $? contient l'etat de la derniere commande (donc ici c'est java). Je commence par la sauvegarder (parce que toute autre commande eventuelle ecrasera sa valeur) puis ensuite je regarde si elle vaut 0 (convention signifiant "arret normal") ou pas. Si elle vaut 0 (ton coeur s'est termine proprement) je quitte la boucle sinon je le relance. C'est peut-etre pas ce que tu veux mais c'est pour te montrer les possibilites du shell et te permettre d'adapter...

Citation:
Envoyé par valoub21 Voir le message
Puis les commandes a faire sur linux:

Code :
1
2
3
 
[ #] chmod +x coeur.sh
[ #] ./coeur.sh
Le chmod +x n'est a faire qu'une seule fois. En effet, pour des questions de securite, un fichier nouvellement cree n'est jamais executable mais une fois le droit mis, celui-ci reste...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 23/02/2013, 12h12   #3
valoub21
 
Inscription : février 2013
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2013
Messages : 3
Points : -1
Points : -1
Merci ! de ta réponse Sve@r.
Je vais donc tester ta solution pour voir si cela conviens a mon coeur java.
Le but sous Windows et de charger le jar et l’exécuter en commande pour avoir une connexion au jeux en luis même puis à la base de donnée contenant les monstres, et compte des jeux en ligne.

Je vous tiens au courant !

Cordialement.
valoub21 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h21.


 
 
 
 
Partenaires

Hébergement Web