Contenu | Rechercher | Menus

Annonce

Les adresses laposte.net ne permettent pas de recevoir nos emails. Vous êtes invité à changer d'adresse dans vos paramètres de compte à votre prochaine connexion.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

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.

#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)

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

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

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

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