Ich führe den folgenden Befehl auf meinem Ubuntu-Server aus
root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Es scheint unendlich zu hängen. Wann immer dies unter AIX passierte, habe ich einfach die PID des fehlerhaften Prozesses abgerufen und gesagt
$ procstack <pid_of_stuck_process>
und es zeigte den gesamten Aufrufstapel des Prozesses. Gibt es eine Entsprechung procstack
in Linux / Ubuntu?
/proc/pid/wchan
und dieWCHAN
Spalte in derps -l
Ausgabe oderps -o wchan
für den Anfang dieses Stapels. (Derps
Teil funktioniert auf vielen Unices, ist aber nicht immer (oft) für sich nützlich).Auf den meisten Unix-Systemen können Sie GDB verwenden .
Es gibt auch
pstack
(kein Standard-Dienstprogramm, Sie müssen es wahrscheinlich manuell installieren). Es sieht aus wie ein Äquivalent von AIXprocstack
. Aber auf meinem Debian-Wheezy amd64 scheint es immer einen Fehler zu geben. Auf i386 druckt ein Programm, das ohne Debugging von Symbolen kompiliert wurde, kein Symbol, auch nicht aus Bibliotheken, für die Debugging-Symbole verfügbar sind.Sie können auch verwenden
strace -p1234
, um die vom Prozess ausgeführten Systemaufrufe anzuzeigen.quelle
pstack
scheint jedes Mal Fehler zu werfen. So etwas wieroot@sarai:~# pstack 6312 6312: /usr/bin/python /usr/bin/twistd -n --uid=maas --gid=maas --pidfile=/run/maas-pserv.pid --logfile=/dev/null maas-pserv --conf... (No symbols found) crawl: Input/output error Error tracing through process 6312
pstack
scheint auf amd64 kaputt zu sein, ich beobachte dasselbe auf Debian wheezy amd64.pstack
druckt einen Stack-Trace eines laufenden Prozesses für Sie aus.gstack
ist eine übliche Entsprechung, wenn siepstack
nicht verfügbar ist / Ihre Distribution / Ihren Bogen nicht unterstützt.quelle