回答:
エラーはstderrに出力されており、次のようにコマンドを実行することで除外できます。
sudo iotop -C 5 12 2>/dev/null
これには、発生する可能性のある他のエラーを除外するという副作用があります。私のiotop出力を読みやすくするという点で、それは大丈夫なトレードオフであることがわかりました。
残念ながら、エラーの原因が何かわかりません。検索しましたが、まだ何も見つかりませんでした。
つまり、トレースしないように要求したプロセスをトレースしようとすると、エラーが表示されます。
このエラーは技術的にはiTunesによるものではなく、次のようなコードを使用してトレースを無効にしているプロセスによるものです。
ptrace(PT_DENY_ATTACH, 0, 0, 0);
このコードは、カーネルレベルでプロセスにフラグを設定し、プロセスのデバッグとトレースを防ぎます。
これを行う最も有名なアプリケーションは、たまたまiTunesであり、このAPIはおそらくこのAPIが発明されたアプリケーションですが、このAPIは他のプロセスで使用できます。多くのサードパーティアプリケーションがこのAPIを使用しているのを見てきました。
もちろん、すべてのDRMと同様に、破損する可能性があります。このトレース防止およびデバッグ防止機能をバイパスするオプションは、デバッガーを使用して、カーネル空間で機能を修正するカーネル拡張機能へのAPI呼び出しをスキップすることから選択できます。
これは
csrutil status
、dtrace
動作に影響を及ぼす可能性のあるEl Capitanとそのシステム整合性保護()に潜在的に関連しています。潜在的な修正には、Macを回復モードで再起動(⌘- R起動時)し、ターミナルで実行することが含まれます:
csrutil enable --without dtrace
SIPを有効にしたまま、DTraceの制限を無効にします(注:これは文書化されていないパラメーターです)。
または、次の方法でSIPを完全に無効にします。
csrutil disable # Not recommended.
見る: