我正在尝试调试为什么我们的集成测试花费了这么长时间,而且看起来它们半途而废。
我登录我们的测试服务并看到以下行为:
root@colossus:~# strace -p 18310
Process 18310 attached - interrupt to quit
futex(0x7f9915c609d0, FUTEX_WAIT, 18313, NULL^C <unfinished ...>
Process 18310 detached
root@colossus:~# strace -p 18313
Process 18313 attached - interrupt to quit
restart_syscall(<... resuming interrupted call ...>^C <unfinished ...>
Process 18313 detached
root@colossus:~# ps -ef | grep 18313
root 19089 19034 0 09:46 pts/0 00:00:00 grep --color=auto 18313
root@colossus:~# ps -p 18313
PID TTY TIME CMD
我对这些命令的解释是18310
等待其子命令18313
完成。
进程18313
正在尝试重新启动中断的系统调用。
这就是奇怪的地方。虽然我可以附加到18313
,但当我运行 时,我无法在当前进程列表中看到它ps
。
有人可以帮我理解这里发生了什么吗?
答案1
根据 Stéphane 的评论,我看到的是一个线程,而不是一个过程。
线程在输出中列出ps -L
可以使用以下命令跟踪进程的所有当前和未来线程strace -f