Obtenir pid d'une commande/processus

Salut à tous.
J’aimerais obtenir le pid d’une commande pour ensuite le manipuler.
J’ai penser à “top” + “grep” sa marchera, mais il y a quelque chose de plus direct ?

pidof (paquet sysvinit-utils)

Merci, c’est très pratique :slightly_smiling:

Cas rare je penses: le processus de iceweasel c’est firefox-bin.
Donc pidof iceweasel me retournera rien, et donc ma solution “top” + “grep” rentrera en jeux, mais une autre solution plus efficace ?

Dommage qu’il n’y a pas de section: commande et nom du processus, dans top ou htop.

Ma situation:
Je veux faire un logiciel, qui permet de manipuler les commandes lancer par moi même depuis ce logiciel, donc il connaît les commandes lancer (et n’affectera pas les processus hors de ce logiciel).


Un truc du genre que tu veux ?

Un truc du genre que tu veux ?

Oui, d’ailleurs j’étais en plein “ps” aussi, c’est mieux que passer par “top” j’imagines.

Sinon, si iceweasel, au lieu d’être “/usr/bin/iceweasel/firefox-bin” était “/usr/bin/firefox-bin” nos grep ne fonctionnera plus, alors que faire ?

[quote=“kripteks”]Ma situation:
Je veux faire un logiciel, qui permet de manipuler les commandes lancer par moi même depuis ce logiciel, donc il connaît les commandes lancées (et n’affectera pas les processus hors de ce logiciel).[/quote]Quand ton logiciel lance les commandes une solution serait peut-être de stocker le “pid” de la commande via la variable “$!” (elle contient le PID du dernier process lancé en arrière plan… un petit “&” entre ton lancement de la commande et le stockage de la variable $! afin de lancer la commande en arrière plan… :wink: ).

pb “spécifique” avec iceweasel(/firefox): toutes les fenêtres sont gérées par le même processus… (du coup si tu tues ce process… ça tue toutes le fenêtres…)

:006

Au début j’avais aussi ajouté la question de trouver le pid au lancement de la commande mais j’avais supprimé.

Et bien sa semble parfait, sa marche, affaire résolu, avec un petit mais: est-il fiable ? rien interférera pour avoir une autre pid ?

Chaque process a son PID qui lui est attribué quand il se lance par le système, et il n’en change plus après. Aucun autre process ne peut avoir le même PID tant que le premier process existe toujours (mais dès que le premier process se termine, son PID est réutilisable par un nouveau process bien sûr).

En fait j’ai voulu dire:

  • macommande & (echo) $! vaut xxx1
    mais si sa arrive qu’un autre processus s’ajoute entre l’echo alors sa sera:
  • macommande & (un_autre_processus_qui_s’incruste_et_qui_change_le_dernier_pid_a_ce_moment &) (echo) $! vaut xxx2

Ah ok. Non t’inquiète, le dernier PID $! est géré correctement, c’est bien la dernière commande lancée par le script en cours et non pas la dernière lancée par le système dans sa globalité. :wink:

Alors c’est résolu :wink:

Je vous remercie.