syspolicyd
結論
syspolicydは、macOSのシステムポリシーのプロセスです。ソフトウェアのインストール、読み込み、実行を許可するかどうかを判断し、アプリを開くときなどに、システムのほかの部分がその判断を問い合わせます。
syspolicydは、アプリの実行前にmacOSが行うチェックの一部を担っていて、インターネットからダウンロードしたアプリを開くときに表示されるGatekeeperのチェックもその1つです。システムのポリシーを保持するデータベースも管理しています。
アプリを開いたとき、ソフトウェアをインストールしたとき、ダウンロードしたファイルを展開したときに、短時間だけ動くのは正常です。
このページの内容
syspolicydがCPUを使う理由
コードをチェックしています。大きなアプリを初めて開いたとき、ソフトウェアをインストールしたとき、実行ファイルがたくさん入ったアーカイブを展開したときは、チェックするものが増えます。開発者は、新しいバイナリをたくさんビルドして実行するときに、より多くの動作を目にすることがあります。
対処法
たいていは何もしなくてかまいません。インストールや初回起動が終わるのを待てば、動作は止まるはずです。syspolicydや、それが行うセキュリティチェックを無効にしようとしないでください。何もしていないのに長時間忙しいままなら、Macを再起動します。
syspolicydが忙しくなるとき
syspolicydが支えているAppleの機能は、アプリの署名と、ダウンロードしたソフトウェアの場合は公証済みかどうかをチェックします。つまり、その動作はMacに新しいコードが入ってくるタイミングに連動しています。
ダウンロードしたファイルには検疫フラグが付き、初めて開くときにチェックするようmacOSに伝えます。一度チェックされて許可されたアプリは、2回目以降の起動で同じ初回の審査を必要としないので、動作は新しいソフトウェアの周辺に集中します。
- インターネットからダウンロードしたアプリを初めて開いたとき。
- アプリのインストールやアップデート。多くのコンポーネントを同梱した大きなアプリも含みます。
- アプリやコマンドラインツールを含むアーカイブやディスクイメージの展開。
- ビルドやパッケージのインストールなど、新しい実行ファイルを大量に作って実行する開発作業。
ターミナルでGatekeeperを確認する方法
読み取り専用の2つのコマンドで、何も変更せずにシステムポリシーの判断を確認できます。アプリを開く前に、署名と公証が済んでいるかどうかを知りたいときに便利です。
spctl --statusを実行します。Gatekeeperのチェックがオンならassessments enabledと表示されます。これが通常の状態です。- アプリのパスを付けて
spctl --assess -vv /Applications/AppName.appを実行します。出力には、そのアプリがacceptedかどうかと、その理由を示すNotarized Developer IDやApple Systemのようなsource=の行が表示されます。 - ダウンロードしたファイルにまだ検疫フラグが付いているかを確認するには、
xattr -l ~/Downloads/FileNameを実行します。com.apple.quarantineの項目があれば、初めて開くときにmacOSがチェックします。
やってはいけないこと
CPUを節約するために、Gatekeeperをオフにしたり、システム整合性保護を無効にしたり、syspolicydを終了したりしないでください。こうした変更は信頼できないソフトウェアの実行を防ぐチェックを取り除いてしまいますし、どのみちsyspolicydは止まったままにはなりません。
初回起動時のチェックを省くために、xattrでダウンロードから検疫フラグを取り除くのもやめましょう。インターネットから入手したソフトウェアを実行前にmacOSが確認するのは、このフラグがあるからです。取り除けばそのチェックを迂回することになり、しかも普段の使用でMacが速くなるわけではありません。
信頼しているアプリをmacOSがブロックした場合は、サポートされている方法で開きます。一度開こうとしたあと、アップルメニュー > システム設定 > プライバシーとセキュリティに移動して下にスクロールし、“このまま開く”をクリックします。アプリは例外として保存され、それ以降は普通に開けます。
syspolicydの普通の状態と気にすべき状態
普通: ソフトウェアを開く、インストールする、展開するときに短時間CPUを使い、作業が終われば止まる。開発者の場合は、ツールやアプリの新しいビルドがどれもチェックの必要な新しいコードなので、目にする機会が多くなります。
確認する価値あり: 何もインストールしたり開いたりしていないのに、syspolicydが長時間忙しいまま。アプリのアップデータなど、バックグラウンドで何かがインストールされていないか確認し、終わるまで待ちます。何も起きていないのに動作が続くなら、Macを再起動します。
よくある質問
Macのsyspolicydとは?
System Policyのデーモンです。ソフトウェアのインストールや実行を許可するかどうかを判断し、macOSがアプリを開く前に行うチェックを支えています。
syspolicydはマルウェア?
いいえ。macOSのセキュリティの一部です。
syspolicydを無効にするべき?
いいえ。信頼できないソフトウェアからMacを守るチェックを実行しています。いまの動作が終わるのを待つか、止まっているように見えるなら再起動しましょう。
macOSのアップデート後にsyspolicydがCPUを使うのはなぜ?
アップデートのあとは、アプリのアップデートやアプリの初回起動が続くことが多く、そのたびにポリシーのチェックが行われることがあります。それが終われば動作は落ち着くはずです。
syspolicydとGatekeeperは同じもの?
Gatekeeperは目に見える機能で、syspolicydはその裏でポリシーを保持しているシステムプロセスです。macOSのほかの部分が、ソフトウェアを実行してよいかをsyspolicydに問い合わせます。
macOSにブロックされたアプリを開くには?
一度開こうとしてから、システム設定 > プライバシーとセキュリティに移動し、“このまま開く”をクリックします。信頼できる入手元のソフトウェアに限って行いましょう。
関連項目
アクティビティモニタより優れたものをお探しなら、Mac向けアクティビティモニタの代替アプリのおすすめをご覧ください。用語集のすべての用語も見られます。