![Vollständigen Befehlsnamen von Prozessen mit hoher Speicherauslastung unter UNIX abrufen](https://rvso.com/image/191771/Vollst%C3%A4ndigen%20Befehlsnamen%20von%20Prozessen%20mit%20hoher%20Speicherauslastung%20unter%20UNIX%20abrufen.png)
Ich versuche, den Prozessnamen zu erfassen, der viel Speicher auf meiner Box verwendet. Ich habe den folgenden Befehl ausgeführt, um das zu erhalten
while [ 1 ]
do
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
sleep 5
done
Das Problem besteht jedoch darin, dass mir nicht alle Befehlsdetails angezeigt werden, die gegen die PID ausgeführt werden. Die Ausgabe, die ich erhalte, ist wie folgt:
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
Ich möchte den vollständigen Befehl des PID erfassen.
Antwort1
Ich nehme an, mit „vollständigen Befehlsdetails“ meinen Sie einschließlich der Argumentenliste? Wenn ja, versuchen Sie das Folgende. Es gibt Ihnen eine Breite von bis zu 100 Zeichen für die CMD-Spalte. Sie können sie nach Bedarf anpassen.
ps -eo pid,ppid,cmd:100,%mem,%cpu --sort=-%mem | head
Antwort2
Sie können jederzeit dieSpitzeBefehl mit Schaltern zum Manipulieren der Ausgabe:
top -b -c -n 1 -o +%MEM | sed -n '7,17p'