Linux / Comando pgrep: buscar procesos por nombre, usuario y argumentos

pgrep busca procesos en ejecución por criterios como el nombre y el usuario, e imprime sus PID (identificadores de proceso). Permite comprobar qué procesos coinciden y no los termina por sí mismo.

El patrón básico se aplica al nombre del proceso con una expresión regular. Si se requiere que el nombre completo coincida exactamente, use -x; para revisar toda la línea de comandos, use -f. -f puede coincidir más ampliamente, así que confirme siempre los resultados.

Sintaxis básica

pgrep [opciones] patrón

La implementación instalada y las opciones pueden variar según la distribución. Verifique la descripción de man pgrep en el sistema actual.

Ejemplos de uso

Buscar PID por nombre

Se imprimen los PID coincidentes uno por línea.

pgrep sshd

Ver PID y línea de órdenes completa

Muestra qué tarea ha sido seleccionada para reducir errores.

pgrep -a sshd

Restringir por usuario y nombre exacto

Reduce el alcance para no seleccionar procesos con el mismo nombre de otros usuarios.

pgrep -u alice -x python3

Razones por las que los resultados de la búsqueda aparecen como PID

pgrep imprime el PID del proceso que cumple con los criterios. Usar -a permite mostrar el PID junto con toda la línea de comando, facilitando su verificación.

pgrep -a sshd

Ejemplo de salida (en un sistema donde el proceso está en ejecución):

1234 /usr/sbin/sshd -D

Si no aparece ninguna línea, puede que no haya procesos coincidentes o que haya problemas con los derechos de búsqueda o los criterios. La búsqueda predeterminada se realiza por nombre de proceso; para buscar hasta la línea completa de comando, use -f. Los patrones amplios pueden incluir procesos inesperados, así que revise los resultados antes de pasarlos a un comando de terminación.

Opciones y formatos principales

Opción o formato Descripción
-a Muestra PID junto con toda la línea de comando.
-x El nombre del proceso completo debe coincidir con el patrón.
-f Verifica toda la línea de comando en lugar del nombre del proceso.
-u usuario Selecciona los procesos cuyo ID de usuario efectivo coincide con el indicado.
-n / -o Selecciona la coincidencia más reciente o la más antigua.

Precauciones al usar

El nombre del proceso puede ser diferente del que se muestra en la línea de comandos, y los nombres largos pueden verse afectados por los límites internos de la implementación. -f puede encontrar más trabajos de los esperados. Antes de pasar los PID encontrados a kill, verifíquelos de nuevo con ps -p PID -o cmd=, etc.

Preguntas frecuentes

¿Es un error si pgrep no devuelve ningún resultado?

Por lo general, significa que no hay procesos que cumplan con la condición y el estado de salida puede no ser 0. Para confirmar el estado del servicio, compruebe también el momento de ejecución y las condiciones de búsqueda.

Documentación oficial

Se puede consultar el comportamiento exacto de las opciones y las diferencias según la implementación en la documentación oficial de pgrep.