#1 Le 11/05/2010, à 14:54
- Sciensous
[résolu, super !] script et pid
est-ce que quelqu'un sait comment récupérer dans une variable le pid d'un commande lancée dans un script ?
genre:
...
gnuplot "plot.plt"
x=LE PID DE PROCESSUS FILS gnuplot
...
car echo $$ retourne le pid du script lui-même
merci
Dernière modification par Sciensous (Le 11/05/2010, à 21:29)
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#2 Le 11/05/2010, à 15:25
- ubuntero_secundo
Re : [résolu, super !] script et pid
Bonjour,
Mes connaissances en bash sont assez limitées, mais je crois que la commande pidof machin, où machin est le nom du processus, fait bien l'affaire.
j'espère que ça va aider.
Hors ligne
#3 Le 11/05/2010, à 15:33
- Sciensous
Re : [résolu, super !] script et pid
oui, sauf que si la commande est lancée plusieurs fois (ce qui est mon voeu) ça devient lourd à gérer !
C'est pourquoi il me faudrait vraiment le pid en retour de commande
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#4 Le 11/05/2010, à 18:26
- twocats
Re : [résolu, super !] script et pid
gnuplot "plot.plt" & PROCESS_PID=${!}
La réponse est 42
Hors ligne
#5 Le 11/05/2010, à 18:48
- ubuntero_secundo
Re : [résolu, super !] script et pid
[Mise à jour]
Désolé, je crois que je n'avais pas très bien compris la question et que je me suis un peu précipité sur la réponse.
[/Mise à jour]
oui je vois le problème maintenant, alors il y a une solution pas très élégante mais qui marche, c'est utiliser les commandes ps et grep + un peu de bash scripting. Voilà comment on procède comme suit :
1) on extrait les informations sur les processus en cours :
2) on transfert le résultat à grep pour extraire la ligne qui contient les informations sur notre processus
3) on retransfert vers grep mais cette fois pour enlever "grep" de la liste.
4) on met le tout dans une variable tableau
5) notre numéro de processus sera le premier élément du tableau.
la commande totale sera :
MA_VARIABLE=$(ps -ef | grep 'ma commande complète' | grep -v grep)
declare -a TAB_PID=($MA_VARIABLE)
MON_PID=${TAB_PID[1]}
voilà, en tout cas ça marche chez moi. J'espère que ça aidera
Dernière modification par ubuntero_secundo (Le 11/05/2010, à 18:51)
Hors ligne
#6 Le 11/05/2010, à 21:29
- Sciensous
Re : [résolu, super !] script et pid
@ubuntero_secundo: ben justement je voulais éviter des pipes de ps, grep et cut...
@twocats: c'est exactement ça, je n'ai pas réussi à trouver cette "commande" dans les différents tutos que j'ai glanés...
merci à vous 2
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#7 Le 12/05/2010, à 13:04
- credenhill
Re : [résolu, super !] script et pid
hello
MA_VARIABLE=$(pgrep nom_de_la_commande)
Hors ligne
#8 Le 12/05/2010, à 18:12
- Sciensous
Re : [résolu, super !] script et pid
credenhill: non car si la même commande est lancée plusieurs fois ça ne marche pas
antiX 19 et 21 et Ubuntu 20.04 et 22.04
( sous LXDE et gnome-shell )
Hors ligne
#9 Le 13/05/2010, à 07:11
- credenhill
Re : [résolu, super !] script et pid
pgrep -f 'ma commande complète'
Hors ligne