Trabajar con un proceso de Linux a menudo significa conocer su identificación de proceso o PID. Es un número único dado a cada pieza de software en ejecución. Aquí hay dos formas de averiguar qué es.
¿Qué es una ID de proceso de Linux?
Cómo obtener un PID de Linux con el comando Pidof
Cómo encontrar PID con el comando PGREP en Linux
¿Qué es una ID de proceso de Linux?
Internamente, Linux realiza un seguimiento de su proceso de ejecución al asignarles un número de identificación único, llamado ID de proceso o PID. Cada aplicación en ejecución, utilidad y demonio tiene un PID.
Los PID son valores enteros simples. Un proceso recientemente iniciado recibirá un PID más alto que el último PID que se emitió. Entonces, el proceso con el PID más alto es el proceso más nuevo, es decir, más recientemente, el proceso liquidado. Eso continúa hasta que el sistema alcance el valor máximo para un PID.
El límite superior para un PID es 32768. Una vez que se alcanza esa cifra, Linux vuelve al inicio y busca un PID que se haya liberado porque el proceso que anteriormente la ha terminado ha terminado.
El proceso con un PID de 1 es el primer proceso que se inicia cuando Linux es iniciado por los procesos de arranque. En sistemas basados en Systemd que serán
system
. En otros sistemas es probable que sea
en eso
, aunque algunas distribuciones de Linux usan alternativas como
Abierto
o
s6
.
A veces es útil descubrir el PID de un proceso, generalmente porque desea realizar alguna acción en ese proceso. Aquí hay dos métodos diferentes para encontrar el PID de un proceso cuando conoce el nombre del proceso.
RELACIONADO: ¿Qué son los PID de Unix y cómo funcionan?
Cómo obtener un PID de Linux con el comando Pidof
El
pidof
El comando puede considerarse como la combinación de "PID" y "de". Es como preguntar ¿cuál es el PID de este proceso? Si usamos el comando sin parámetros, no hace nada. Te devuelve silenciosamente al símbolo del sistema. Necesitamos especificar un nombre de proceso.
pidof
nos dice que el pid del shell bash es 8304. Podemos verificar que con el
PD
dominio. Todo lo que necesitamos hacer es llamar
PD
sin parámetros. Informará sobre los procesos que se ejecutan en la sesión actual.
Porque
PD
informes sobre todos los procesos que puede encontrar, que se incluirán a sí mismo, nos dice que hay un
intento
proceso y un
PD
proceso en ejecución. Como esperamos, el
intento
El proceso tiene el mismo PID que
pidof
reportado en.
Si tiene más de una ventana de terminal abierta,
pidof
informará sobre todos ellos.
Tenga en cuenta que los PID se enumeran de los más altos a los más bajos o, en otras palabras, desde el más reciente hasta el más antiguo.
Lo que esto no muestra es que no sea el propietario de todos esos procesos.
pidof
Encuentra todos los procesos con nombres coincidentes, independientemente de quién los posee. Veamos más profundamente al tuvir la salida a
grep
. Estamos usando el
-mi
(seleccione todos los procesos) y el
-F
(Listado completo) Opciones con
PD
.
Dos de los procesos bash pertenecen al usuario Dave, el tercero pertenece al usuario Mary.
A veces, una aplicación generará muchos procesos, cada uno de los cuales recibe su propio PID. Esto es lo que obtenemos con Google Chrome.
Por defecto,
pidof
informes sobre todos los procesos. Si queremos, podemos pedir solo los procesos más recientes. El
-s
(disparo único) La opción hace exactamente eso.
Usar el
matar
mandar a
Mata manualmente
toda la
cromo
Los procesos serían tediosos. Si capturamos la lista de procesos en una variable, podemos pasar esa variable al
matar
dominio. El
matar
El comando puede aceptar múltiples PID en su comando, por lo que felizmente acepta nuestra entrada y mata todos los procesos por nosotros.
El primer comando recopila la salida de
pidof
y lo asigna a nuestra variable, que estamos nombrando
pid
. No necesitamos
eco
En la pantalla, solo estamos haciendo eso para mostrar lo que posee nuestra variable.
Pasamos la variable al
matar
comando, luego usa
pidof
una vez más para verificar si quedan procesos de Chrome. Todos han sido asesinados.
Una peculiaridad de
pidof
es que no devolverá el PID de un script de shell. Devuelve el PID del
intento
shell que ejecuta el script. Para ver el shell que ejecuta un script, necesitamos usar el
-X
(scripts) opción.
pidof
Devuelve el pid de una cáscara de fiesta, y
PD
nos muestra que hay dos conchas en ejecución. Uno es el caparazón que ejecuta el
pidof
comando, y el otro es el shell que ejecuta el script.
Cómo encontrar PID con el comando PGREP en Linux
El
pgrep
El comando funciona un poco como
pidof
Para obtener ID de proceso en Linux. Sin embargo, no solo encuentran procesos que coincidan exactamente con la pista de búsqueda, sino que también devuelve los PID de cualquier proceso cuyo nombre
contiene
el texto de búsqueda.
Aquí hay un ejemplo en una computadora que tiene Firefox ejecutándose.
Todos estos comandos encuentran el proceso de Firefox y devuelven el PID. Pero si haya ingresado el comando:
Por sí solo, ¿cómo sabría si PGREP hubiera encontrado FI? rehacer x y no, por ejemplo, un dameon llamado P refor ¿Maryland?
Si agrega el
-La
(Nombre de la lista) Opción, PGREP enumerará el nombre del proceso junto con el PID.
Si hay múltiples instancias de un proceso de coincidencia, todos están enumerados.
Tenga en cuenta que se enumeran en orden ascendente, que es el orden opuesto a la salida de
pidof
. Se enumeran desde el proceso más antiguo hasta el proceso más nuevo. Como vimos con
pidof
, no todos los procesos enumerados necesariamente le pertenecen.
El
-u
(ID de usuario) La opción le permite buscar procesos que coincidan con el texto de búsqueda y son propiedad de los nombrados
usuario
.
Esta vez vemos tres procesos bash en los resultados. El otro está siendo utilizado por
María
.
Y podemos pedir ver todos los procesos para un usuario específico.
Para ver la línea de comando completa, use el
-a
(Lista completa) Opción.
Una palabra sobre la propiedad del PID
No todos los procesos del sistema son propiedad de el usuario de la raíz . Muchos son, por supuesto, pero no todos. Por ejemplo, este comando funciona:
Falla porque
raíz
no posee ese proceso. El propietario real es un usuario del sistema llamado "Avahi". Usando el nombre de usuario correcto, el comando funciona.