Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

#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

Haut de page ↑