• Compra una licencia de Windows 10/11 (10€) u Office (18€) al mejor precio u Office al mejor precio. Entra en este post con las ofertas
  • ¡Bienvenid@! Recuerda que para comentar en el foro de El Chapuzas Informático necesitas registrar tu cuenta, tardarás menos de 2 minutos y te dará valiosa información además de ayudarte en lo que necesites o pasar un rato agradable con nosotros.

Contar, mostrar y filtrar procesos en script de bash, linux.

Saito_25

Friki informático
Registrado
15 Mar 2015
Mensajes
1.154
Puntos
83
Buenas,

Antes de nada, espero que todos estéis bien, ante la crisis que estamos viviendo (covid-19).

Tengo que hacer un script en linux, en el cual, unos de los puntos a cumplir son mostrar:


  • Número de procesos en ejecución para el usuario actual
  • Proceso más antiguo del usuario
  • Listado de los procesos del usuario

Sé que para ello puedo usar el comando "ps", pero aquí se me plantea la duda de con qué opciones usarlo. He visto en internet y en stack overflow, que una forma es
"ps -aux" la cual, creo que muestra todos los procesos, incluyendo los que no son propios del usuario. Otra forma, sería "ps" sin ningún parámetro, el cual muestra los procesos de la consola actual, según he leído. y que "ps -u usuario", muestra solo los procesos del usuario pasados por parámetro, el cuál creo que sería la mejor opción.

Mi duda principalmente, es que con tantos ejemplos y tanto información en internet no sé cuál es la acertada y si tengo bien asimilado los conceptos y lo que he dicho arriba es cierto o me he equivocado en algún comando, ¿Me podéis echar un cable?

Y bueno, agradecería si me podéis echar una mano mostrándome algún ejemplo de cómo haríais vosotros para mostrar esos tres puntos.

Gracias.
 
Hola.

Que tal compañero??

Yo lo tengo un poco oxidado esto de sistemas operativos, pero te intentare echar una mano y asi de paso repaso un poco.

Pero yo lo haria asi, mientras consigas el resultado siempre da igual la manera en que lo hagas xq en linux hay muchisimas maneras.

Numero de procesos: ps -e | wc -l (el ps -e es parecido que tu ps -aux pero con menos rollo y sin estar ordenados por hora, lo uso bastante cuando tengo que matar algo que se ha quedado bloqueado)
Proceso mas antiguo: ps -aux | head -n2
Procesos del usuario: En este tengo mas dudas por la pregunta por ambigua. Hay 2 tipos de procesos los creados por el usuario o los que tienen por asi decirlo permisos como si fueran tuyos y creados en tu nombre.

Unos se abren con: ps -u usuario y otros con ps -U usuario. El problema es que si quieres que el script funcione para cualquier usuario sin saberlo previamente tienes que poner ps -u $user pero para ps -U $user no funciona seguro que tiene su explicacion para que de error.


Pero suelen existir muchas maneras por ejemplo si no sabemos el comando para el usuario se puede listar todos los procesos y quedarnos con los que empiecen por el nombre del usuario y hay incluso un lenguaje de scripts como awk que se usa para esto.
 
Muchas gracias por la ayuda, tasadarf! Al final usé ps -u usuario. No entiendo muy bien la diferencia, pero bueno, tampoco me la han explicado (en clase y llevo dos tres días liados con el script, que aparte de eso, pide muchas más cosas) y creo que a mi profesor le vale esa opción XD.

¿Por cierto, cómo llevas Java? Puede que en unas semanas, te llegue algo al buzón, que creo que te será muy útil para seguir con aprendiendo!
 
Muchas gracias por la ayuda, tasadarf! Al final usé ps -u usuario. No entiendo muy bien la diferencia, pero bueno, tampoco me la han explicado (en clase y llevo dos tres días liados con el script, que aparte de eso, pide muchas más cosas) y creo que a mi profesor le vale esa opción XD.

¿Por cierto, cómo llevas Java? Puede que en unas semanas, te llegue algo al buzón, que creo que te será muy útil para seguir con aprendiendo!

La diferencia yo tampoco la entendia xq cuando estudie eso no aprendimos la diferencia. Pero para que te hagas una idea por si acaso en el futuro -u te dice los procesos que has abierto tu por ejemplo cualquier comando desde consola que se haya quedado abierto, mientras que en el sistema simplemente con entrar en Linux hay un monton de procesos abiertos con tu nombre de usuario sin tu abierto ninguno que se abren automaticamente al entrar en la sesion grafica esos son los del -u .

Pues el Java justo empece 2 semanas antes del encierro poco a poco en mis ratos libres pero con el encierro he tenido que reorganizarme y probablemente lo retome en breve de manera mas intensa en cuanto termine unos temas pendientes.

Un abrazo.
 
Arriba