Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/07/2006, à 13:03

nerve

une petite aide en programmation bash / java

Voila j'ai besoin d'adapter un programme (usethemall) pour qu'il tourne bien sous linux.
pour l'instant j'ai fait deux programmes :
1 qui le lance :

#!/bin/sh

#determines UseThemAll PATH
DIR=`dirname "$DIR"`

#locate java Mac, Linux, *BSD command
EXECJAVA=`which java`

#libs classpath 
CLASSPATH="$CLASSPATH":"$DIR"
CLASSPATH="$CLASSPATH":"$DIR"/lib/velocity-1.4.jar
CLASSPATH="$CLASSPATH":"$DIR"/lib/commons-collections.jar
CLASSPATH="$CLASSPATH":"$DIR"/lib/UseThemAll.jar

#JVM options
JAVA_OPTS=-Xmx4m

#HomePlayer main class 
MAINCLASS=fr.free.usethemall.UseThemAll

$EXECJAVA $JAVA_OPTS -cp "$CLASSPATH" $MAINCLASS $@

et un qui le ferme en tuant le processus :

#!/bin/sh

gksudo -t killall UseThemAll.sh

mais la deux problèmes :
1.pour que ce prog puisse fonctionner sur des stations sans X, il se place en tant que processus sans gui, donc la seule solution pour le fermer et de tuer le processus. Mais ma méthode ne fonctionne que sous gnome (gksudo), pour le rendre compatible avec kde il en faudrait un autre avec (ksudo). Il y a t'il moyen de faire un seul programme qui fonctionne avec gnome, kde et autres avec l'ouverture d'une fenêtre demandant le mot de pass root.
2.lorsque je fais un raccourci dans le menu via à la carte, ça ne marche pas, ça s'ouvre et ça se ferme tout de suite sans demander le mot de passe et sans tuer le processus.

Un petit coup de main ?


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#2 Le 20/07/2006, à 13:15

Black_pignouf

Re : une petite aide en programmation bash / java

Bonjour!

dois tu lancer le processus en tant que root?
Si non, tu peux virer le gksudo devant killall.
la solution à base de killall me paraît un peu barbare. mais je ne sais pas trop comment faire sinon (kill -9 pid), mais il faudrait connaître pid.
pour remplacer gksudo/ksudo, tu peux faire:

xterm -e sudo killall UseThemAll.sh

A+,

Eric

Hors ligne

#3 Le 20/07/2006, à 13:48

coffee

Re : une petite aide en programmation bash / java

ps | grep UseThemAll.sh

dans le script UseThemAll.sh et on y recupere le pid avec un awk derriere


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#4 Le 20/07/2006, à 18:14

Black_pignouf

Re : une petite aide en programmation bash / java

@coffee Oui...
le problème, cest que le grep XXXX apparaît aussi dans la liste. La commande complète est donc:

kill -9 `ps | grep UseThemAll.sh | grep -v grep | awk '{print $2}'`

Hors ligne

#5 Le 21/07/2006, à 09:52

nerve

Re : une petite aide en programmation bash / java

Black_pignouf a écrit :

@coffee Oui...
le problème, cest que le grep XXXX apparaît aussi dans la liste. La commande complète est donc:

kill -9 `ps | grep UseThemAll.sh | grep -v grep | awk '{print $2}'`

j'ai cette erreur dans la console :

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#6 Le 21/07/2006, à 10:15

Black_pignouf

Re : une petite aide en programmation bash / java

Désolé, mais cela fonctionne chez moi... hmm Je ne sais pas trop quoi te dire donc!
As tu bien copié-collé la commande? Fais gaffe, ce sont de ' et des `, qui sont différents wink

Hors ligne

#7 Le 21/07/2006, à 10:40

nerve

Re : une petite aide en programmation bash / java

oui copier coller, je viens de refaire un tentative et même message d'erreur


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#8 Le 21/07/2006, à 10:44

ringer

Re : une petite aide en programmation bash / java

PID=`ps | grep UseThemAll.sh | grep -v grep | awk '{print $2}'`

kill $PID

kill -9 est un arrêt brutal (au fusil à pompe) kill (=kill -15) est une demande d'arrêt propre.
D'autre part tu devrais mettre #!/bin/bash plutôt que sh qui est trés limité. Ton problème viens sans doute de là.


--
La culture... ce qui a fait de l'homme autre chose qu'un accident de l'univers.
[ André Malraux ]

Hors ligne

#9 Le 21/07/2006, à 10:50

Black_pignouf

Re : une petite aide en programmation bash / java

kill -15

Merci, c'est toujours bon à savoir. En gros, il lui demande gentillement de se suicider avant de le tuer s'il y a un problème?

Hors ligne

#10 Le 21/07/2006, à 12:00

ringer

Re : une petite aide en programmation bash / java

Black_pignouf a écrit :

kill -15

Merci, c'est toujours bon à savoir. En gros, il lui demande gentillement de se suicider avant de le tuer s'il y a un problème?

Il lui demande plutôt de rentrer se coucher. Si ça marche pas il te reste kill -9 histoire de savoir qui est le patron. Non mais des fois!! roll


--
La culture... ce qui a fait de l'homme autre chose qu'un accident de l'univers.
[ André Malraux ]

Hors ligne

#11 Le 21/07/2006, à 12:03

coffee

Re : une petite aide en programmation bash / java

oui le kill -9 était une mauvais idée de ma part... :s je ne pensai pas à le faire trop fort. Surement la chaleur qui me fait dire/faire plein de bêtise en ce moment...


Nom d'un tupperware habillé en streetware mangeant de la confiture de pouère et qui se dite où est-ce que je suis ouère !
Tiens mon blog
Les blagues sous forme de fausses aides sont susceptible de ban (ex: rm)

Hors ligne

#12 Le 21/07/2006, à 12:09

nerve

Re : une petite aide en programmation bash / java

donc maintenant dans mon script stopusemall j'ai ça :

#!/bin/bash

PID=`ps | grep usethemall.sh | grep -v grep | awk '{print $2}'`

kill $PID

mais j'ai toujours cette erreur dans la console :

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

le processus usethemall.sh n'est pas tué

en tout cas merci de votre aide à tous !

Dernière modification par nerve (Le 21/07/2006, à 12:10)


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#13 Le 21/07/2006, à 12:48

Black_pignouf

Re : une petite aide en programmation bash / java

Il faut indiquer à kill comment tuer le processus:

#!/bin/bash

PID=`ps | grep usethemall.sh | grep -v grep | awk '{print $2}'`

kill -15 $PID || kill -9 $PID

on tente -15, si ça ne marche, on bourrine smile

Hors ligne

#14 Le 21/07/2006, à 13:10

nerve

Re : une petite aide en programmation bash / java

pas mieux mm erreur

rv@Ubuntu-desktop:~/paquets_a_maintenir/usethemall-1.0-beta1-1/usr/local/share/usethemall$ sh ./stop_usethemall.sh
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#15 Le 21/07/2006, à 13:28

Black_pignouf

Re : une petite aide en programmation bash / java

bizarre, fais un echo $PID dans ton script pour voir wink

Hors ligne

#16 Le 21/07/2006, à 13:32

ringer

Re : une petite aide en programmation bash / java

nerve a écrit :

donc maintenant dans mon script stopusemall j'ai ça :

#!/bin/bash

PID=`ps | grep usethemall.sh | grep -v grep | awk '{print $2}'`

kill $PID

mais j'ai toujours cette erreur dans la console :

kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

le processus usethemall.sh n'est pas tué

en tout cas merci de votre aide à tous !

Oh purée!! autant pour moi j'avais pas vu ; c'est ps -ef qi te donneras le bon format. sad
PID=`ps -ef | grep usethemall.sh | grep -v grep | awk '{print $2}'`

kill $PID


--
La culture... ce qui a fait de l'homme autre chose qu'un accident de l'univers.
[ André Malraux ]

Hors ligne

#17 Le 21/07/2006, à 14:32

nerve

Re : une petite aide en programmation bash / java

Parfais merci !

Par contre ça ne tue pas le sous processus JAVA qui est lancé par le script usethemall


Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne

#18 Le 21/07/2006, à 16:10

ringer

Re : une petite aide en programmation bash / java

nerve a écrit :

Parfais merci !

Par contre ça ne tue pas le sous processus JAVA qui est lancé par le script usethemall

Dans ce cas :

PID=`ps -ef | grep usethemall.sh | grep -v grep | awk '{print $2}'`
PIDFILS=`ps -ef | grep $PID| grep -v grep | awk '{print $2}'`

kill $PID $PIDFILS

Dernière modification par ringer (Le 21/07/2006, à 16:12)


--
La culture... ce qui a fait de l'homme autre chose qu'un accident de l'univers.
[ André Malraux ]

Hors ligne

#19 Le 21/07/2006, à 16:30

nerve

Re : une petite aide en programmation bash / java

j'ai ce message d'erreur :

grep: 23110: Aucun fichier ou répertoire de ce type
grep: 23111: Aucun fichier ou répertoire de ce type
Complété

Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux

Hors ligne