Lavorare con un processo Linux spesso significa conoscere il suo ID di processo o PID. È un numero unico dato a ogni software di corsa. Ecco due modi per scoprire di cosa si tratta.
Cos'è un ID processo Linux?
Come ottenere un PID Linux con il comando PIDOF
Come trovare PIDS con il comando PGREP in Linux
Cos'è un ID processo Linux?
Internamente, Linux tiene traccia del suo processo di esecuzione assegnandoli un numero ID univoco, chiamato ID processo o PID. Ogni applicazione, utilità e demone in esecuzione ha un PID.
I PID sono semplici valori interi. Un processo appena avviato riceverà un PID superiore all'ultimo PID che è stato emesso. Quindi il processo con il PID più alto è il processo più recente, cioè più recentemente -. Ciò continua fino a quando il sistema non raggiunge il valore massimo per un PID.
Il limite superiore per un PID è 32768. Una volta raggiunta quella figura, Linux torna all'inizio e cerca un PID che è diventato libero perché il processo che in precedenza lo ha interrotto.
Il processo con un PID di 1 è il primo processo lanciato quando Linux viene lanciato dai processi di avvio. Sui sistemi basati su SystemD che saranno
SystemD
. Su altri sistemi è probabile che lo sia
dentro
, sebbene alcune distribuzioni Linux utilizzino alternative come
Openrc
O
S6
.
A volte è utile scoprire il PID di un processo, di solito perché si desidera eseguire alcune azioni su quel processo. Ecco due diversi metodi per trovare il PID di un processo quando conosci il nome del processo.
IMPARENTATO: Cosa sono i PID UNIX e come funzionano?
Come ottenere un PID Linux con il comando PIDOF
IL
Pidof
Il comando può essere pensato come la combinazione di "PID" e "OF". È come chiedere qual è il PID di questo processo? Se utilizziamo il comando senza parametri, non fa nulla. Ti restituisce silenziosamente al prompt dei comandi. Dobbiamo specificare un nome di processo.
Pidof
ci dice che il PID del guscio bash è 8304. Possiamo verificarlo con il
ps
comando. Tutto quello che dobbiamo fare è chiamare
ps
senza parametri. Riferirà sui processi in esecuzione nella sessione corrente.
Perché
ps
Rapporti su tutti i processi che può trovare, che includerà se stessa, ci dice che c'è un
Bash
processo e a
ps
Processo in esecuzione. Come ci aspetteremmo, il
Bash
Il processo ha lo stesso PID che
Pidof
riportato su.
Se hai più di una finestra del terminale aperto,
Pidof
riferirà a tutti loro.
Si noti che i PID sono elencati dal più alto al più basso o, in altre parole, dal più recente al più vecchio.
Ciò che ciò non mostra è che potresti non essere il proprietario di tutti questi processi.
Pidof
Trova tutti i processi con nomi corrispondenti, indipendentemente da chi li possiede. Guardiamo più in profondità con le vesche di output
grep
. Stiamo usando il
-e
(Seleziona tutti i processi) e il
-F
(elenco completo) Opzioni con
ps
.
Due dei processi bash appartengono all'utente Dave, il terzo appartiene all'utente Mary.
A volte un'applicazione genererà molti processi, ognuno dei quali riceve il proprio PID. Questo è ciò che otteniamo con Google Chrome.
Per impostazione predefinita,
Pidof
Rapporti su tutti i processi. Se vogliamo, possiamo chiedere solo il più recente di questi processi. IL
-S
(Single Shot) l'opzione fa proprio questo.
Per usare il
uccisione
comando a
uccidere manualmente
tutti di
cromo
I processi sarebbero noiosi. Se catturiamo l'elenco dei processi in una variabile, possiamo passare quella variabile al
uccisione
comando. IL
uccisione
Il comando può accettare più PID sul suo comando, quindi accetta felicemente il nostro contributo e uccide tutti i processi per noi.
Il primo comando raccoglie l'output da
Pidof
e lo assegna alla nostra variabile, che stiamo nominando
pid
. Non ne abbiamo bisogno
eco
Alle schermo, lo stiamo solo facendo per mostrare cosa riserva la nostra variabile.
Passiamo la variabile a
uccisione
comando, quindi usa
Pidof
Ancora una volta per verificare se rimangono processi di cromo. Sono stati tutti uccisi.
Una stranezza di
Pidof
è che non restituirà il PID di uno script di shell. Restituisce il PID del
Bash
Shell che sta eseguendo lo script. Per vedere la shell che esegue uno script, dobbiamo usare il
-X
(Script) Opzione.
Pidof
Restituisce il PID di un guscio di bash e
ps
ci mostra che ci sono due conchiglie in esecuzione. Uno è la shell che esegue il
Pidof
comando e l'altro è la shell che esegue lo script.
Come trovare PIDS con il comando PGREP in Linux
IL
pGrep
Il comando funziona un po 'come
Pidof
Nel ottenere ID di processo in Linux. Tuttavia, non trova solo processi che corrispondono esattamente all'indizio di ricerca, restituisce anche i PID di eventuali processi il cui nome
contiene
il testo di ricerca.
Ecco un esempio su un computer che ha Firefox in esecuzione.
Tutti questi comandi trovano il processo Firefox e restituiscono il PID. Ma se avessi inserito il comando:
Da solo, come faresti a sapere se pGrep avesse trovato Fi RIFO X e no, diciamo, un dameon chiamato p Rebor MD?
Se aggiungi il
-l
(Nome elenco) Opzione, PGREP elencherà il nome del processo insieme al PID.
Se ci sono più istanze di un processo di corrispondenza, sono tutti elencati.
Si noti che sono elencati in ordine crescente, che è l'ordine opposto all'output da
Pidof
. Sono elencati dal processo più antico al processo più recente. Come abbiamo visto con
Pidof
, non tutti i processi elencati ti appartengono necessariamente.
IL
-u
(ID utente) L'opzione consente di cercare processi che corrispondono al testo di ricerca e sono di proprietà del denominato
utente
.
Questa volta vediamo tre processi di bash nei risultati. L'altro viene utilizzato da
Maria
.
E possiamo chiedere di vedere tutti i processi per un utente specifico.
Per vedere la riga di comando completa, usa il
-UN
(Elenco completo) Opzione.
Una parola sulla proprietà PID
Non tutti i processi di sistema sono di proprietà di l'utente root . Molti sono, ovviamente, ma non tutti. Ad esempio, questo comando funziona:
Fallisce perché
radice
non possiede quel processo. Il proprietario effettivo è un utente di sistema chiamato "Avahi". Utilizzando il nome utente corretto, il comando funziona.