
統合テストがなぜそれほど時間がかかり、邪魔になるように見えるのかをデバッグしようとしています。
テストサービスにログインし、次の動作を確認しました。
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