Travailler avec un processus Linux signifie souvent connaître son identifiant de processus, ou PID. C'est un numéro unique donné à chaque logiciel de course. Voici deux façons de découvrir ce que c'est.
Qu'est-ce qu'un ID de processus Linux?
Comment obtenir un Linux Pid avec la commande PIDOF
Comment trouver des véhicules avec la commande pgrep dans Linux
Qu'est-ce qu'un ID de processus Linux?
En interne, Linux garde une trace de son processus en cours d'exécution en leur allouant un numéro d'identification unique, appelé ID de processus, ou PID. Chaque application en cours d'exécution, utilitaire et démon a un PID.
Les PID sont de simples valeurs entières. Un processus nouvellement déclenché recevra un PID plus élevé que le dernier PID qui a été émis. Le processus avec le PID le plus élevé est donc le processus le plus récent - c'est-à-dire, plus récemment -. Cela se poursuit jusqu'à ce que le système atteigne la valeur maximale d'un PID.
La limite supérieure pour un PID est de 32768. Une fois ce chiffre atteint, Linux remonte au début et recherche un PID devenu gratuit car le processus qui l'a précédemment possédé s'est terminé.
Le processus avec un PID de 1 est le premier processus qui est lancé lorsque Linux est lancé par les processus de démarrage. Sur des systèmes basés sur Systemd qui seront
systemd
. Sur d'autres systèmes, il est susceptible d'être
init
, bien que certaines distributions Linux utilisent des alternatives telles que
Openrc
ou
S6
.
Parfois, il est utile de découvrir le PID d'un processus, généralement parce que vous souhaitez effectuer une action sur ce processus. Voici deux méthodes différentes pour trouver le PID d'un processus lorsque vous connaissez le nom du processus.
EN RAPPORT: Que sont les Pids Unix et comment fonctionnent-ils?
Comment obtenir un Linux Pid avec la commande PIDOF
Le
picof
Le commandement peut être considéré comme la combinaison de «PID» et «de». C’est comme demander quel est le PID de ce processus? Si nous utilisons la commande sans paramètres, il ne fait rien. Il vous renvoie silencieusement à l'invite de commande. Nous devons spécifier un nom de processus.
picof
nous dit que le pid de la coquille de bash est 8304. Nous pouvons vérifier cela avec le
ps
commande. Tout ce que nous devons faire est d'appeler
ps
sans paramètres. Il rapportera les processus qui s'exécutent dans la session en cours.
Parce que
ps
des rapports sur tous les processus qu'il peut trouver, qui comprendront lui-même, il nous dit qu'il y a un
frapper
processus et un
ps
Processus en cours d'exécution. Comme nous nous attendons, le
frapper
Le processus a le même PID que
picof
rapporté sur.
Si vous avez plus d'une fenêtre de terminal ouverte,
picof
rapportera tous sur eux tous.
Notez que les PID sont répertoriées du plus haut au plus bas ou, en d'autres termes, du plus récent au plus ancien.
Ce que cela ne montre pas, c'est que vous n'êtes peut-être pas le propriétaire de tous ces processus.
picof
trouve tous les processus avec des noms correspondants, peu importe qui les possède. Regardons plus profondément en tuant la sortie dans
grep
. Nous utilisons le
-e
(sélectionnez tous les processus) et le
-F
(Liste complète) Options avec
ps
.
Deux des processus bash appartiennent à l'utilisateur Dave, le troisième appartient à l'utilisateur Mary.
Parfois, une application générera de nombreux processus, chacun qui reçoit son propre PID. C'est ce que nous obtenons avec Google Chrome.
Par défaut,
picof
Rapports sur tous les processus. Si nous le voulons, nous pouvons demander le plus récent de ces processus. Le
-s
(Single Shot) L'option fait exactement cela.
Pour utiliser le
tuer
commander
tuer manuellement
la totalité de la
chrome
Les processus seraient fastidieux. Si nous capturons la liste des processus en une variable, nous pouvons transmettre cette variable à la
tuer
commande. Le
tuer
La commande peut accepter plusieurs PID sur sa commande, il accepte donc avec plaisir notre contribution et tue tous les processus pour nous.
La première commande collecte la sortie à partir de
picof
et l'affecte à notre variable, que nous nommons
piquer
. Nous n'avons pas besoin de
écho
À l'écran, nous faisons simplement cela pour montrer ce que notre variable contient.
Nous passons la variable au
tuer
commande, puis utilisez
picof
Une fois de plus pour vérifier si des processus chromés restent. Ils ont tous été tués.
Une bizarrerie de
picof
est qu'il ne renverra pas le PID d'un script shell. Il renvoie le pid du
frapper
Shell qui exécute le script. Pour voir le shell qui exécute un script, nous devons utiliser le
-X
(scripts) Option.
picof
Renvoie le pid d'une coquille bash, et
ps
nous montre qu'il y a deux coquilles en cours d'exécution. L'un est le shell exécutant le
picof
commande, et l'autre est le shell exécutant le script.
Comment trouver des véhicules avec la commande pgrep dans Linux
Le
pgrep
La commande fonctionne un peu comme
picof
Dans l'obtention d'identifiants de processus dans Linux. Cependant, il ne trouve pas seulement des processus qui correspondent exactement à l'indice de recherche, il renvoie également les Pids de tout processus dont le nom
contient
le texte de recherche.
Voici un exemple sur un ordinateur qui fait fonctionner Firefox.
Toutes ces commandes trouvent le processus Firefox et renvoient le PID. Mais si vous aviez entré la commande:
En soi, comment sauriez-vous si Pgrep avait trouvé Fi refoner x et non, disons, un dameon appelé p refaire Maryland?
Si vous ajoutez le
-l
(Nom de la liste), PGREP répertorie le nom de processus à côté du PID.
S'il y a plusieurs instances d'un processus de correspondance, ils sont tous répertoriés.
Notez qu'ils sont répertoriés par ordre croissant, qui est l'ordre opposé à la sortie de
picof
. Ils sont répertoriés du processus le plus ancien au processus le plus récent. Comme nous l'avons vu avec
picof
, tous les processus énumérés ne vous appartiennent pas nécessairement.
Le
-U
(ID utilisateur) L'option vous permet de rechercher des processus qui correspondent au texte de recherche et appartiennent au nom du nom
utilisateur
.
Cette fois, nous voyons trois processus bash dans les résultats. L'autre est utilisé par
Marie
.
Et nous pouvons demander à voir tous les processus pour un utilisateur spécifique.
Pour voir la ligne de commande complète, utilisez le
-un
(Liste complète) Option.
Un mot sur la propriété du PID
Tous les processus système ne sont pas détenus par l'utilisateur racine . Beaucoup le sont, bien sûr, mais pas tous. Par exemple, cette commande fonctionne:
Ça échoue parce que
racine
ne possède pas ce processus. Le propriétaire réel est un utilisateur système appelé «Avahi». En utilisant le nom d'utilisateur correct, la commande fonctionne.