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 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... tongue

@twocats: smile  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
wink


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