Obtenga el nombre completo del comando del proceso de uso elevado de memoria en UNIX

Obtenga el nombre completo del comando del proceso de uso elevado de memoria en UNIX

Estoy intentando capturar el nombre del proceso que utiliza mucha memoria en mi caja. Ejecuté el siguiente comando para obtener eso.

while [ 1 ]
do
   ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
   sleep 5
done

Pero el problema es que no me proporciona todos los detalles del cmd que se ejecuta en el PID. El resultado que obtengo es este:

PID  PPID CMD                            %MEM     %CPU
916 915 /usr/bin/perl /release/data/ 11.9  0.2
831 830 /usr/bin/perl -w /release/da  6.5  0.0
608 607 /etc/alternatives/java_sdk_  2.4  1.2
135 134 /etc/alternatives/java_sdk_  1.4  1.6

Quiero capturar el cmd completo del PID.

Respuesta1

Supongo que por "detalles completos de cmd" te refieres a incluir la lista de argumentos. Si es así, prueba esto a continuación. Le dará hasta 100 caracteres de ancho para la columna CMD. Puede ajustar según sea necesario.

ps -eo pid,ppid,cmd:100,%mem,%cpu --sort=-%mem | head

Respuesta2

Siempre puedes usar elarribacomando con interruptores para manipular la salida:

top -b -c -n 1 -o +%MEM | sed -n '7,17p'

información relacionada