ps出力にないプロセスにstraceをどのように接続しますか?

ps出力にないプロセスにstraceをどのように接続しますか?

統合テストがなぜそれほど時間がかかり、邪魔になるように見えるのかをデバッグしようとしています。

テストサービスにログインし、次の動作を確認しました。

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

おすすめ記事