Estaba buscando la mejor forma de encontrar la cantidad de procesos en ejecución con el mismo nombre a través de la línea de comandos en Linux. Por ejemplo, si quería encontrar el número de procesos bash en ejecución y obtener "5". Actualmente tengo un script que hace un 'pidof' y luego cuenta la cadena tokenizada. Esto funciona bien, pero me preguntaba si había una forma mejor de hacerlo completamente a través de la línea de comando. Gracias de antemano por tu ayuda.Encontrar recuento de procesos en Linux a través de la línea de comandos
Respuesta
En sistemas que tienen pgrep
disponibles, la opción -c
devuelve un recuento del número de procesos que coinciden con el nombre dado
pgrep -c command_name
Tenga en cuenta que este es un partido al estilo grep
, no una exacta partido, así que por ejemplo pgrep sh
también coincidirá con los procesos bash
. Si desea una coincidencia exacta, también use la opción -x
.
Si pgrep
no está disponible, puede usar ps
y wc
.
ps -C command_name --no-headers | wc -l
La opción -C
-ps
toma command_name
como un argumento, y el programa muestra una tabla de información acerca de los procesos cuyo nombre coincide con el nombre ejecutable orden dada. Esta es una coincidencia exacta, no grep
-style. La opción --no-headers
suprime los encabezados de la tabla, que normalmente se imprimen como la primera línea. Con --no-headers
, obtiene una línea por proceso emparejado. Luego, wc -l
cuenta e imprime el número de líneas en su entrada.
result=`ps -Al | grep command-name | wc -l`
echo $result
Esto es exactamente lo Estaba buscando :) –
ps -Al | grep -c bash
El siguiente script bash se puede ejecutar como un trabajo cron y posiblemente pueda recibir un correo electrónico si algún proceso se bifurca demasiado.
for i in `ps -A -o comm= --sort=+comm | uniq`;
do
if ((`ps -C $i --no-headers | wc -l` > 10)); then
echo `hostname` $i `ps -C $i --no-headers | wc -l` ;
fi
done
Reemplace 10 con su número de preocupación.
TODO: "10" también se puede pasar como parámetro de línea de comandos. Además, pocos procesos del sistema pueden incluirse en la lista de excepciones.
Algunas de las anteriores no me funcionaron, pero me ayudaron en mi camino hacia esto.
ps aux | grep [j]ava -c
para los novatos en Linux:
ps aux
imprime todos los procesos actualmente en ejecución, grep
busca todos los procesos que coinciden con la palabra java, los []
soportes de eliminar el proceso que se acaba de ejecutar por lo que suele incluir que como un proceso en ejecución y finalmente la opción -c
significa recuento.
que puede probar:
ps-ef | grep -cw [p] rocess_name
O
ps aux | grep -cw [p] rocess_name
por ejemplo:
ps-ef | grep -cw [i] nit
Me gusta lo simple y limpia que es esta solución –
No sé lo que es en otras distribuciones, pero en Ubuntu, es:
nproc
nproc
es parte de coreutils
. Por lo tanto, debería estar disponible en la mayoría de las distribuciones de Linux.
Lista de todos los nombres de proceso, clasificar y contar
ps --no-headers -A -o comm | sort | uniq -c
También puede enumerar proceso unido a un TTY
ps --no-headers a -o comm | sort | uniq -c
Usted puede filtrar con:
ps --no-headers -A -o comm | awk '{ list[$1] ++ } END { for (i in list) { if (list[i] > 10) printf ("%20s: %s\n", i, list[i]) } }'
- 1. * en la línea de comandos de linux
- 2. svn historial a través de la línea de comandos
- 3. ¿Crear usuarios de mysql a través de la línea de comandos de Linux?
- 4. línea de comandos análisis arg a través de la introspección
- 5. RTMP: ¿Existe una herramienta de línea de comandos de Linux?
- 6. Haga una "GUI" de Linux en la línea de comandos
- 7. Forzar el arranque en la línea de comandos de Linux
- 8. Despliegue de guerra en Jboss 7.0.1 a través de la línea de comandos
- 9. Linux: utilidad de línea de comandos ¿Convertir RTF a PDF?
- 10. Convertir documento a texto a través de la línea de comandos
- 11. Control remoto de línea de comandos de Chrome en Linux?
- 12. Recuento de reducción de procesos Erlang
- 13. Pasando argumentos a través de la línea de comandos con MPI
- 14. ¿Cómo actualizar la vista de clearcase a través de la línea de comandos de Windows?
- 15. ¿Cómo formalizar correctamente el uso de la línea de comandos de los comandos de GNU/Linux?
- 16. redireccionante comandos AT a MICROCOM de comandos en Linux
- 17. ¿Podemos subir archivos a documentos de google a través de la secuencia de comandos de shell de linux o python?
- 18. Cambio de la dirección IP a través de línea de comandos en Windows XP
- 19. Creación de Visual Studio Deployment Project (.vdproj) a través de la línea de comandos
- 20. Terminar un proceso de un árbol de procesos en la línea de comandos (Windows)
- 21. Biblioteca de Python para la gestión de procesos de Linux
- 22. La conexión de PDO funciona desde la línea de comandos, pero no a través de Apache.
- 23. CSV a la secuencia de comandos XLS de Linux
- 24. Actualización a la última versión de la línea de comandos
- 25. ¿Hay un módulo CPAN Perl para encontrar la memoria total/usada/libre en un host (sin ejecutar la línea de comandos a través de una llamada al sistema())?
- 26. ¿Cómo llamar a las funciones de MATLAB desde la línea de comandos de Linux?
- 27. Conseguir un número hexadecimal en un programa a través de la línea de comandos
- 28. Ejecutar un comando en hosts remotos a través de capistrano desde la línea de comandos
- 29. Cómo compilar Flash .fla en .swf a través de la línea de comandos?
- 30. Lanzamiento de un sitio web a través de la línea de comandos de Windows
Limpiar los encabezados es bueno por alguna razón, cuando ejecuto ps hay 2 procesos y cuando ejecuto ' ps --no-encabezados | wc -l' hay 3 procesos. Parece contar la nueva línea inicial? – CMCDragonkai
Hmm, parece que 'pgrep -c' no es una opción en OpenBSD/Darwin. ¿Podría agregar una pequeña explicación de por qué ha seleccionado esos indicadores (para ambos comandos)? Sin alguna explicación, hace que sea difícil para los usuarios en una distribución diferente incluso usar una página de 'hombre' para tratar de traducir sus intenciones ... – cwd
@cwd seguro, he editado. –