close
Linux/Unix

pgrep apprendre à l’utiliser avec des exemples

Pgrep est une commande sous Linux qui permet de chercher un process qui tourne via son nom, c’est presque le même principe de la commande grep permettant de chercher un mot dans des fichiers. Nous allons voir dans ce guide des exemples utiles de la commande pgrep pour identifier les process. Assez discuté, place à l’action 🙂 .

1-Afficher les process appartenant à un utilisateur spécifique :

[root@srv ~]# pgrep -u dev1
15518
15527
15528
15529
15535
15543

2-Afficher les process appartenant à plusieurs utilisateurs :

Vous pouvez aussi voir les process lancé par plusieurs utilisateurs en une seule commande, il suffit de séparer leurs nom par “,” :

[root@srv ~]# pgrep -u root,mysql
1
2
3
5
7
8
9
10
11
13
14
15

3 – Afficher nombre des process lancé :

Pour afficher combien de process sont lancé par un utilisateur ajouter le paramètre -c :

[root@srv ~]# pgrep -u root -c
96

4 – Lister les noms des process :

Le numéro ID ne donne pas d’infos sur le process lancé, heureusement il existe l’option -l qui affiche le nom des process lancé, dans l’exemple ci-dessous j’affiche les process ID lancé par l’utilisateur mysql et son chemin absolu :

-Sans le paramètre -l :

[root@srv ~]# pgrep -u mysql
10842

-Avec le paramètre -l :

[root@srv ~]# pgrep -u mysql -l
10842 mysqld

Pour afficher le chemin absolu des process :

[root@srv ~]# pgrep -u mysql -a
10842 /usr/sbin/mysqld 

5- Séparer les process ID par un délimiteur :

Vous pouvez afficher les process ID en les séparant avec un délimiteur avec le paramètre “-d” :

[root@srv ~]# pgrep -u root -d,
1,2,3,5,7,8,9,10,11,13,14,15,16,17,18,19,20,21,22,23,24,30,31,32,33,41,43,44,45,47,60,91,738,749,756,761,762,1006,1007,1767,1774,1775,1824,1828,2998,2999,3013,3014,3032,3037,3042,3045,3048,3051,3052,3053,3054,3055,3056,3057,3124,3156,3160,5086,5088,5089,5092,5097,5101,5102,5103,6302,6521,6549,6556,6563,6565,7024,7026,7028,7375,9052,10650,11475,12527,12528,12529,12535,12543,12573,12577,12579,12603,13184,13210,13211
[root@srv ~]# pgrep -u root -d" "
1 2 3 5 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 30 31 32 33 41 43 44 45 47 60 91 738 749 756 761 762 1006 1007 1767 1774 1775 1824 1828 2998 2999 3013 3014 3032 3037 3042 3045 3048 3051 3052 3053 3054 3055 3056 3057 3124 3156 3160 5086 5088 5089 5092 5097 5101 5102 5103 6302 6521 6549 6556 6563 6565 7024 7026 7028 7375 9052 10650 11475 12527 12528 12529 12535 12543 12573 12577 12579 12603 13184 13210 13211
[root@srv ~]# pgrep -u root -d/
1/2/3/5/7/8/9/10/11/13/14/15/16/17/18/19/20/21/22/23/24/30/31/32/33/41/43/44/45/47/60/91/738/749/756/761/762/1006/1007/1767/1774/1775/1824/1828/2998/2999/3013/3014/3032/3037/3042/3045/3048/3051/3052/3053/3054/3055/3056/3057/3124/3156/3160/5086/5088/5089/5092/5097/5101/5102/5103/6302/6521/6549/6556/6563/6565/7024/7026/7028/7375/9052/10650/11475/12527/12528/12529/12535/12543/12573/12577/12579/12603/13184/13210/13211

6-Chercher les process avec leurs noms :

Je souhaite afficher tous les ID associés au processus bash :

[root@http1 ~]# pgrep bash -l
7375 bash
12579 bash

Leave a Response