プロセスが待機している理由はどうすればわかりますか?

プロセスが待機している理由はどうすればわかりますか?

OSX Mavericksでコマンドを実行しようとすると中断されたようです。私はこれがControl + Tフォアグラウンドタスクのステータスを表示するUnixコマンドであることがわかりました。進行中に数回押してください。数分私にしてください:

$ bin/rake                                                                                
load: 3.68  cmd: ruby 55761 waiting 0.12u 0.02s
load: 3.47  cmd: ruby 55761 waiting 0.12u 0.02s
load: 3.47  cmd: ruby 55761 waiting 0.12u 0.02s
load: 3.09  cmd: ruby 55761 waiting 0.12u 0.02s
load: 2.41  cmd: ruby 55761 waiting 0.12u 0.02s
load: 4.38  cmd: ruby 55761 waiting 0.12u 0.02s

これは、ステータスが「待機中」で、実行にユーザー時間が0.12秒、CPU時間が0.02秒しかかからなかったことを意味します。

なぜ待っているのか知りたいです。プロセスが待機している理由を確認する方法

ベストアンサー1

走るdtrussプロセスが実行されているシステムコールを確認してください。

dtruss -p55761

これは、PID 55761を使用するプロセスが現在実行中のシステムコールを通知します。このシステムコールがファイル記述子にアクセスすると、lsofそこにどのファイルが開いているかを教えてくれます。

lsof -p55761

ファイルがパイプまたはソケットの場合は、反対側に何かがあるかどうかを確認する方法がわかりません。

おすすめ記事