Estou executando o seguinte comando no meu servidor ubuntu
root@slot13:~# lxc-stop --name pavan --logfile=test1.txt --logpriority=trace
Parece travar indefinidamente. Sempre que isso acontecia no AIX, eu simplesmente obtinha o PID do processo ofensivo e dizia
$ procstack <pid_of_stuck_process>
e costumava mostrar toda a pilha de chamadas do processo. Existe algum equivalente procstack
no linux / ubuntu?
/proc/pid/wchan
e aWCHAN
coluna naps -l
saída oups -o wchan
para o topo dessa pilha. (aps
peça funciona em muitos Unices, mas nem sempre (geralmente) é útil por si só).Na maioria dos sistemas unix, você pode usar o GDB .
Também existe
pstack
(não é um utilitário padrão, você provavelmente precisará instalá-lo manualmente). Parece um equivalente ao AIXprocstack
. Mas no meu Debian wheezy amd64, parece sempre erro. No i386, para um programa compilado sem símbolos de depuração, ele não imprime nenhum símbolo, nem mesmo de bibliotecas para as quais os símbolos de depuração estão disponíveis.Você também pode usar
strace -p1234
para ver as chamadas do sistema realizadas pelo processo.fonte
pstack
parece estar lançando erros toda vez. Algo como #root@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
parece estar quebrado no amd64, eu observo o mesmo no Debian wheezy amd64.pstack
imprimirá um rastreamento de pilha de um processo em execução para você.gstack
é um equivalente comum sepstack
não estiver disponível / não suportar sua distribuição / arco.fonte