Pourquoi ?
Par exemple, avec gajim (un client jabber en python), lorsque je fais un ps -A ... il n'apparait nulle part gajim dans la liste ...
Si je veux faie un kill de gajim ... je dois faire un kill de python (en espérant qu'il n'y ait pas d'autres applications python que je risquerait de killer) ... Pourtant lorsque je fais un script shell, le nom de script apparaît bien dans la liste des processus (et non pas 'bash')
Alors, question ... comment faire pour repérer gajim dans ma liste des processus ? comment faire en sorte que 'killall gajim' me tue bien gajim ..?
( Bon, je prenais gajim ... mais ca m'arrive pour d'autres logiciels ... Enfin le problème que je peux avoir avec gajim plus précisément, c'est lorsque le programme qui gère la zone de notification quitte ... gajim reste lancé mais plus moyen de le faire apparaître.
Je dois donc le tuer et le relancer ... )
# man ps
Posté par 桃白白 . Évalué à 3.
# Exemple
Posté par Florent Bayle (site web personnel) . Évalué à 3.
kill `ps aux | grep "gajim" | grep -v "grep" | awk '{ print $2 }'`
Et si tu comptes t'en servir souvent, faire un alias...
Enfin, envoyer un bug report sur gajim serait pas mal, si ce comportement se produit souvent.
# une solution plus générale ?
Posté par Mildred (site web personnel) . Évalué à 1.
mais en même temps, ce que j'aime bien avec l'option -A toute seule ... c'est que la ligne ps est courte et rentre sur n'importe quel terminal.
Et en plus, je ne peux pas utiliser killall
Ce que je me demande c'est pourquoi 'ps -A' m'affiche une ligne '.xsession' alors qu'il sagit ni plus ni moins d'un script shell ... alors qu'il ne m'affiche pas gajim qui lui est un script python ...?
serait-ce quelquechose a faire dans l'interpreteur python (ou autre) ?
Concernant gajim ... si j'ai besoin de le redémarrer ce n'est pas a cause de gajim ... mais souvent parce que je quite trayer (qui m'affiche mon system-tray) ... et donc toutes les applications qui y figuraient deviennent inacessibles ... et lorsque je relance trayer, elle ne réaparaissent pas (normal, on ne s'enregistre qu'une fois).
[^] # Re: une solution plus générale ?
Posté par 桃白白 . Évalué à 3.
#!/usr/bin/python
while 1:
x=4+3
ps -A me donne bien une ligne avec test.py
[^] # Re: une solution plus générale ?
Posté par netsurfeur . Évalué à 5.
Pour les langages interprétés, il y a deux cas possibles:
1. l'interprétreur est lancé explicitement en lui passant en argument le programme. Par exemple:
sh monscript.sh
python monprog.py
2. Le script est lancé directement:
monscript.sh
monprog.py
Dans ce cas, le script doit être exécutable (chmod +x) et contenir le nom de l'interpréteur à utiliser dans la première ligne, sous la forme:
#! path_complet_de_l_interpreteur.
Dans le premier cas, ps -A affiche le nom de l'interpréteur, dans le second il affiche le nom du script.
Si tu veux voir gajim.py plutôt que python dans ps -A, il ne te reste plus qu'à modifier gajim.py ;)
[^] # Re: une solution plus générale ?
Posté par gnujsa . Évalué à 1.
/usr/share/gajim/src/gajim.py: Bourne shell script text executable
$ head -3 /usr/share/gajim/src/gajim.py
#!/bin/sh
''':'
exec python -OOt "$0" ${1+"$@"}
# Humour Humour
Posté par chx dein . Évalué à 1.
J'en ai pas trouvé mais ça ne doit pas être long.
(ah... on me sussure à l'oreillette de regarder de plus près le titre du post..)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.