#1 Le 20/07/2006, à 12: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, à 12: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, à 12: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, à 17: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, à 08:52
- nerve
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}'`
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, à 09:15
- Black_pignouf
Re : une petite aide en programmation bash / java
Désolé, mais cela fonctionne chez moi... 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
Hors ligne
#7 Le 21/07/2006, à 09: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, à 09: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, à 09: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, à 11:00
- ringer
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?
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!!
--
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, à 11: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, à 11: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, à 11:10)
Staff TvFreeplayer
http://www.tvfreeplayer.com/
------------------------
Maintener des dépots linux
Hors ligne
#13 Le 21/07/2006, à 11: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
Hors ligne
#14 Le 21/07/2006, à 12: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, à 12:28
- Black_pignouf
Re : une petite aide en programmation bash / java
bizarre, fais un echo $PID dans ton script pour voir
Hors ligne
#16 Le 21/07/2006, à 12:32
- ringer
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 !
Oh purée!! autant pour moi j'avais pas vu ; c'est ps -ef qi te donneras le bon format.
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, à 13: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, à 15:10
- ringer
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
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, à 15: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, à 15: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