murasame a écritJe vais donc répondre à la seconde partie
qui intéressera, peut-être davantage la communauté :
while ps x | grep "/home/MOI/.minecraft/bin/minecraft.jar"; do sleep 1; done;
ou
while pgrep -fl "/home/MOI/.minecraft/bin/minecraft.jar"; do sleep 1; done;
ne marchent pas. Je n'osais pas le suggérer avant d'essayer mais le fait est que ce processus n'est pas listé. Le seul processus visible lié à Minecraft s'appelle "java".
A partir de là, on n'a pas beaucoup le choix... Ce n'est pas que celà me plaise, mais la seule solution que j'ai trouvée est d'en passer par le pidof. Si vraiment ça te titille, installe toi minecraft et si tu trouves une autre solution je l'adopterai avec plaisir !
Pour en revenir à la communauté, je crois qu'on pourrait garder la partie qui concerne le démarrage plein écran. C'est une question que j'ai vu beaucoup posée et pour laquelle je n'avais pas trouvé de réponse avant de me pencher dessus.
Pour lancer Minecraft en plein écran :
1- Télécharger wmctrl
sudo apt-get install wmctrl
2- Le script :
#export LD_LIBRARY_PATH="/usr/lib/jvm/java-7-oracle/jre/lib/amd64" ##décommenter cette ligne si vous êtes en 64bits
java -Xmx1024M -Xms512M -jar ~/.minecraft/minecraft.jar & sleep 10 && wmctrl -r :ACTIVE: -b toggle,fullscreen
exit 0
NB: le sleep 10 peut être ajusté en fonction du temps que met java à démarrer. Le tout est d'être sûr qu'il soit lancé avant que la commande suivante s'exécute, sinon, pas de plein écran !
Bonjour,
Si je comprends bien le problème, la commande qui lance Minecraft se termine après avoir lancé un process java qui exécute le jeu en arrière plan.
Je pense que le pgrep et le wmctrl -l sont les meilleures pistes pour un script robuste.
Même si ton script répond à ton besoin, il est toujours préférable de trouver une solution générique, que l'on pourra alors présenter sur la doc pour en faire bénéficier l'ensemble de la communauté.
Ton script actuel pose pour moi 2 problèmes :
- il impose un seul process java lancé sur la machine (celui de Minecraft)
- il implique que l'utilisateur adapte la durée du sleep selon la vélocité de son ordi, et sa charge cpu (le temps peu varier entre 2 exécutions).
Si tu le veux, peux-tu seulement lancer Minecraft normalement, et dans un terminal, nous donner le résultat de :
pgrep -fl java
Cela devrait nous donner l'ensemble de la ligne de commande du process java qui exécute Minecraft pour mieux filtrer le grep/pgrep.
Mon autre idée serait d'utiliser la commande "wait" suivi du PID du process
java/Minecraft pour éviter un sleep hasardeux.
Dans ton cas (1 seul process java) ça donnerait :
wait $(pidof java)
La version robuste serait dans le genre (en changeant
Minecraft par une chaine plus spécifique) :
PID="$(pgrep -fl 'Minecraft' | cut -f 1)"
wait $PID
Dans le script de lancement 'simple', concernant la ligne en commentaire sur le jdk 64 bits, est-ce parce que tu as eu un problème ?
J'aurais compris s'il fallait donner le chemin d'un jdk 32 bits dur un système 64 bits. Mais là, en jdk 64 bits sur config 64 bits ça devrait marcher sans cette ligne, non ?
Merci d'avance de nous fournir cette info :-)
A+