Na moim serwerze Ubuntu uruchamiam następujące polecenie
root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Wydaje się zawieszać na czas nieokreślony. Ilekroć tak się działo w systemie AIX, po prostu uzyskiwałem PID procesu obrażania i mówiłem
$ procstack <pid_of_stuck_process>
i pokazywał cały callstack całego procesu. Czy istnieje jakiś odpowiednik procstack
linux / ubuntu?
/proc/pid/wchan
iWCHAN
kolumnę wps -l
danych wyjściowych lubps -o wchan
na górze tego stosu. (ps
część działa na wielu Unikach, ale nie zawsze (często) jest przydatna sama w sobie).W większości systemów uniksowych możesz używać GDB .
Jest też
pstack
(nie jest to standardowe narzędzie, prawdopodobnie będziesz musiał zainstalować go ręcznie). Wygląda jak odpowiednik systemu AIXprocstack
. Ale w moim debiutującym amd64 na Debianie wydaje się, że zawsze występuje błąd. Na i386, dla programu skompilowanego bez symboli debugowania, nie drukuje żadnego symbolu, nawet z bibliotek, dla których dostępne są symbole debugowania.Możesz także użyć,
strace -p1234
aby zobaczyć wywołania systemowe wykonywane przez proces.źródło
pstack
wydaje się, że za każdym razem powoduje błędy. Coś w styluroot@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
wydaje się być zepsuty na amd64, obserwuję to samo na Debian wheezy amd64.pstack
wydrukuje dla ciebie ślad stosu uruchomionego procesu.gstack
jest wspólnym odpowiednikiem, jeślipstack
nie jest dostępny / nie obsługuje twojej dystrybucji / arch.źródło