Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Commande unix : findproc pour retourner les PID des processus recherchés
Envoyé par: szdavid

Bonjour,

j'ai créé la commande suivante pour pouvoir rechercher des processus précis (on tape findproc hello et on a tous les processus où on peut trouver hello).


ps -ef | grep -i $1|awk '{ print $2}'


Le problème est que ce fameux "hello" peut aussi bien être dans le nom de l'user que dans le nom du processus.

Je voudrais modifier cette commande pour que je puisse taper :
findproc -u username (renvoie les processus de cet user)
findproc -a application (je suppose que vous devinez à quoi elle sert)
mais, pur faire ça, je suis... totalement ignorant...
pourriez vous m'aider ?

Merci

Poste le Tuesday 16 December 2003 19:17:28
Répondre     Citer    
Re: Commande unix : findproc pour retourner les PID des processus recherchés
Envoyé par: Jonesy's

Bonsoir,

Il te faut inverser grep et awk et que l'option -u ou -a soit convertie en nombre :

Pour transformer l'option -u ou -a en nombre ($OPT)
case $1
'-u')OPT=1;
'-a')OPT=8;
esac

Puis
ps -ef | awk '{ print $OPT }' | grep -i $2

Comme ca à chaud sans tester...
@+

Poste le Tuesday 16 December 2003 22:58:35
Répondre     Citer    
Re: Commande unix : findproc pour retourner les PID des processus recherchés
Envoyé par: Jonesy's

Biiiip ! Error ! ;-)

J'y ai pensé en lisant d'autres post sur le forum...
Ce serait plutot :
ps -ef | awk '{ print ${OPT} }' | grep -i $2

Poste le Tuesday 16 December 2003 23:07:07
Répondre     Citer    
Re: Commande unix : findproc pour retourner les PID des processus recherchés
Envoyé par: Dave

Voilà où j'en suis dans mes recherches

if [ $# -lt 2 ]
#there are only two parameters and we need 3.
then
echo "You have to use this command this way : findproc {-o owner|-p ppid|-r running_time| -u minimum_time_used}"
else
case $1 in
#the search depends of the owner
#owner is the first field of ps -f
-[oO]) ps -ef | grep -i $2|awk '{ print $2}';;

#the search depends of the PPID
#PPID is the third field of ps -f
-[pP]) ps -ef | grep -i $2|awk '{ print $2}';;

#the search depends of the running_time
#running time is the seventh field of ps -f
-[rR]) ps -ef | grep -i $2|awk '{ print $2}';;

#the search depends of the minimum time of use
#it depends of the time
-[uU]) ps -ef | grep -i $2|awk '{ print $2}';;
*)echo "You have to use this command this way : findproc {-o owner|-p ppid|-r running_time(xx:xx:xx)| -u minimum_time_used(xx:xx:xx)}";;
esac
fi



en gros, ce qu'il me manque, c'est un "truc" pour filtrer les données envoyées par ps avant le grep ;
javais pensé à awk '{print $1 $2}' mais le problème est que, dans ce cas, $1 et $2 contiennent déjà les paramètres de la commande, me semble-t-il... ?

Poste le Wednesday 17 December 2003 01:05:57
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Commande unix : findproc pour retourner les PID des processus recherchés
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons