Duda comando ps linux

Hola, tengo un examen el lunes, y he conseguido contestar todas las preguntas sobre comandos linux, excepto las descritas abajo y a ver si me podríais ayudar.Las preguntas:


-Listar todos los procesos del usuario root mostrando relaciones de parentesco entre procesos
-Indicar cuatro procesos padre que generen un conjunto de procesos hijos.
-Identifica cuales son los tres procesos que utilicen mas tiempo de memoria en un período de diez segundos.
-Identifica cuales son los tres procesos pertenecientes al root que utilicen mas tiempo de procesador en un intervalo de treinta segundos.

Gracias de antemano
Pide que muevan el hilo a Software Libre quizás ahí alguien te pueda ayudar mejor.

A ver vamos hay cosas las cuales no recuerdo muy bien pero recuerdo alguna vez a ver jugado con procesos.

-Listar todos los procesos del usuario root mostrando relaciones de parentesco entre procesos

Lo del parentesco ni idea :-?
pero quizás te sirva algo tan simple como :
ps aux | grep root | less


Tambien lo puedes enviar a un archivo para despues analizarlo >> file.txt

-Indicar cuatro procesos padre que generen un conjunto de procesos hijos.

Mmmmm según lo que creo no estoy seguro.

#!/bin/sh

echo "Ingrese Nombre de Proceso : "
read -r PROCESO

if ps ax | grep -v grep | grep $PROCESO > /dev/null
then
InfoProceso=$(ps -aux | grep $PROCESO |awk '{print  "User :" $1 "\tPID " $2  "\t\tPath Proceso : " $11}' | head -n 1 && ps -u $(id -un) xaopid,ppid,comm | grep $PROCESO | awk '{print "PPID " $2}'| head -n 1)
   echo -e "\n$InfoProceso"

Subprocesos=$(ps -aux | grep $PROCESO |awk '{print  "User :" $1 "\tPID " $2  "\t\tPath Proceso : " $11}' | head -n -1 | sed 1d)

echo -e "\nSub procesos "
   echo "$Subprocesos"
else
    echo "$PROCESO NO esta en ejecucion"
fi


Imagen

O la forma corta con :
ps -u $(id -un) xaopid,ppid,comm | grep NOMBRE_PROCESO


-Identifica cuales son los tres procesos que utilicen mas tiempo de memoria en un período de diez segundos.

Aquí quizás sleep te ayude (es lo que entiendo cuando dice tiempo)
sleep 10; ps aux --width 30 --sort -rss | head -4


-Identifica cuales son los tres procesos pertenecientes al root que utilicen mas tiempo de procesador en un intervalo de treinta segundos.

Acá entiendo casi lo mismo :
sleep 30; ps aux --width 30 --sort -%cpu  | grep root | head -4


Saludos.
Muchas gracias, los he probado y funcionan perfectamente
Muchas gracias por tu ayuda y atención [oki] [oki] @kyo2009
2 respuestas