![Obtenga el nombre completo del comando del proceso de uso elevado de memoria en UNIX](https://rvso.com/image/191771/Obtenga%20el%20nombre%20completo%20del%20comando%20del%20proceso%20de%20uso%20elevado%20de%20memoria%20en%20UNIX.png)
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'