Cuente el número de procesos con ps -Af

Cuente el número de procesos con ps -Af

Tengo que contar la cantidad de procesos de emacs en la máquina que estoy usando de forma remota, usando el comando ps -Af. ¿Por dónde empiezo?

Respuesta1

ps -Afno es el mejor enfoque.

La fopción es superflua y podría generar falsos positivos si procesos que no son de emacs usan emacs o una cadena que lo contiene como uno de sus parámetros, sin mencionar el (improbable) caso de un usuario llamado emacs.

Sugeriría usar este comando más simple:

pgrep emacs | wc -l

Respuesta2

tu puedes hacerps -C emacs --no-heading | wc -l

ps -C commandprocesos de salida por nombre de comando

EDITAR: ps --helpes muy interesante

Respuesta3

Como dijo Hennes, puedes usar un " ps -AF | grep emacs | wc -l" para hacerlo. Pero también tendrás tu propio mando allí. Para deshacerse de estos comandos, puede usar " grep -v" (o --inverted-match) para filtrar los comandos que no desea contar. Entonces quedaría así:ps -AF | grep emacs | grep -v grep | wc -l

Respuesta4

Comience con los primeros principios.

Comience estableciendo qué hace exactamente el comando que se le pidió que utilice y cómo -Affuncionan las opciones especificadas ( ). Para hacer esto lea man ps:

-A Seleccionar todos los procesos.
-f Hacer listado en formato completo. Esta opción se puede combinar con muchas otras opciones de estilo UNIX para agregar columnas adicionales.

Entonces, su punto de partida es el resultado de todos los procesos que se ejecutan para su usuario, enumerados en formato completo. Ejecute el comando para ver el resultado completo antes de intentar realizar cualquier procesamiento:

ps -Af

Para contar emacslos procesos, deberá canalizar la salida a través de una herramienta de filtrado para procesar la salida y/o contar las coincidencias respectivas. grepes una buena opción, pero por eficiencia y simplicidad, usaría awk:

ps -Af | awk '/emacs/ && !/awk/ { a++ } END { print a }'

Esto busca el patrón /emacs/, excluye el patrón de la búsqueda en sí, !/awk/incrementa las coincidencias { a++ }y luego imprime el total { print a }.

Esto solo requiere una única tubería y soluciona elegantemente el problema de no devolver el proceso de búsqueda en su recuento.

información relacionada