App security check · macOS process

syspolicyd on Mac: Gatekeeper's checker, why it is busy, and what to do

syspolicyd is the process that enforces Gatekeeper. When you open an app for the first time, it checks the app is signed by a known developer and notarized by Apple, and it does the same for installers, disk images and command-line tools. For a normal app that takes a few seconds. For Xcode, a 12 GB installer or a folder of developer tools it can run at full CPU for several minutes. It settles on its own. It is not safe to quit and relaunches anyway. If it is busy every few minutes with nothing opening, a large installer sitting in Downloads is usually the cause.

Let it finishIt is doing a job and stops on its own. Quitting it only makes it start over.

Updated 9 November 2026 · macOS 12 Monterey to macOS 26 Tahoe · 5 min read

What it is
The system policy daemon. It decides whether an app, installer or tool is allowed to run under your security settings.
Normal
Idle most of the time. 50 to 100 percent CPU for a few seconds on first launch of an app, a few minutes for huge ones.
Not normal
Full CPU every few minutes for days, or every app launch feeling slow long after an update.
Safe to quit?
No. It is a root security service and relaunches at once. Quitting can also leave the app launch hanging.
The one safe fix
Let the check finish. If it repeats, move or delete the large installer it keeps scanning.

What syspolicyd does

Every time you open something new on a Mac, macOS asks a question: is this allowed? Gatekeeper is the name for the answer, and syspolicyd is the daemon that works it out. It reads your choice in System Settings under Privacy & Security (App Store only, or App Store and identified developers), checks the app's code signature, looks up its notarization ticket, and consults the quarantine flag that Safari and other apps put on downloads. If everything lines up, the app opens. If not, you get the dialog about an unidentified developer or an app that cannot be checked for malicious software.

The expensive part is the signature check. To confirm that nothing has been tampered with, syspolicyd has to read every file in the app bundle and compare it against the signature. For a small utility that is a few hundred files and a second or two. For Xcode, with hundreds of thousands of files and tens of gigabytes, it is minutes of flat-out CPU and disk, which is why developers see this process more than anyone.

It also handles installer packages, disk images, scripts and command-line tools, and it keeps a cache of what it has already approved so the second launch is instant. That cache is why a big app is slow to open once and fast after that.

What normal looks like

syspolicyd is bursty by design. Most of the day it does nothing; when it works, it works hard and briefly:

Opening apps you have used before0 to 1 percentAlready approved and cached. No visible work.
First launch of a normal app50 to 100 percent for 2 to 10 secondsSignature and notarization check. The bouncing Dock icon is this.
First launch of Xcode or a 10 GB plus install100 percent for several minutesEvery file is verified. Normal once; the next launch is fast.
Full CPU every few minutes for daysRepeating with nothing being openedSomething is being re-scanned. Usually a huge installer still in Downloads.
syspolicyd CPU by event. The first three are expected; only the last needs action.

The one widely shared MacRumors report on this is a good example of the last row: a user on Catalina found syspolicyd scanning a 12 GB Monterey installer every few minutes, and deleting the file solved it. That is the shape of nearly every real syspolicyd complaint. There is a large signed thing on disk that keeps getting evaluated.

Why syspolicyd is using CPU right now

  1. You just opened an app for the first time. Or the first time since it updated. The check runs once and is cached. Normal.
  2. You installed Xcode, a large game, a creative suite or a virtual machine app. Huge bundles take minutes to verify. Developers see this after every Xcode update, and it is the single most common reason for a long syspolicyd run.
  3. A macOS update just finished. Approval caches are rebuilt and many apps are re-checked on their next launch, so the first day after an update has more syspolicyd activity than usual. It fades as you use your apps.
  4. A large installer is sitting in Downloads. A macOS installer, a 10 GB disk image, or a folder of installers can be re-evaluated whenever something touches it, including Spotlight. Moving it out of Downloads or deleting it ends the loop.
  5. A build or script tool is launching many binaries. Package managers, build systems and test runners spawn thousands of small executables, each of which is assessed. This is normal during a build and stops when the build does.
  6. Something is blocking the online check. Notarization lookups go to Apple over the network. A VPN, a firewall or a captive portal that blocks them can leave syspolicyd waiting or retrying and app launches hanging.

Is it safe to quit syspolicyd?

No. It runs as root, Activity Monitor will ask for your password, and launchd restarts it within a second. Worse, if an app launch was waiting on it, that launch can hang or fail, and the next attempt starts the check from scratch. You cannot turn Gatekeeper off from System Settings either, and the methods that disable it from the command line remove a real protection for no benefit here.

The right mental model is that syspolicyd is doing a one-time job on something large. Let it finish, or remove the large thing. Nothing else is needed.

What are you about to quit?

Check any process above. For syspolicyd the verdict is settle: it stops when the check is done.

What to do, in order

  1. Wait out the first launch

    If you just opened a big app or installed Xcode, give it the full few minutes. The Dock icon bouncing or a spinning cursor during this is normal. Do not force quit the app; that only restarts the check.

  2. Look in Downloads for huge installers

    Open Downloads and sort by size. A macOS installer, a multi-gigabyte disk image or a large package there is the most common cause of repeated scans. Move it to an external drive or delete it once you have used it.

  3. Eject disk images you are done with

    A mounted installer image can be re-checked repeatedly. Eject it from Finder and delete the file if the app is installed.

  4. Finish the update cycle

    After a macOS update, open the apps you use once each so their approvals are rebuilt and cached. The first day is busier; the second is normal. Mac slow after update covers the rest of that first day.

  5. Check the network if launches hang

    If apps bounce for a long time and then open, or show a dialog about not being able to check for malware, disconnect the VPN or switch Wi-Fi and try again. The notarization lookup needs a clear path to Apple.

  6. Restart

    A restart clears any stuck evaluation and lets the caches settle. If syspolicyd is quiet after the restart and stays quiet, you are done.

  7. If it repeats with nothing new, find the file

    Select syspolicyd in Activity Monitor, click the i button, and open Open Files and Ports. The path it is reading is the item being scanned. Move or delete that item. Do not remove anything inside System or Library folders.

When to worry

Busy syspolicyd is not a sign of infection; it is the opposite, the system checking things. These are the situations that deserve a second look:

  • Every app launch is slow for more than a day or two after an update, which can mean the approval cache is not being written. Free up disk space and restart.
  • syspolicyd runs hot every few minutes for days with Downloads empty and no builds running. Use the Open Files tab to find what it is reading.
  • You are repeatedly asked to approve an app you already approved. That points at a corrupt quarantine record on the file; re-downloading the app fixes it.

None of these are reasons to weaken Gatekeeper. Keep the setting on App Store and identified developers, and let syspolicyd do its job.

  1. 1You open a new app or installer
  2. 2syspolicyd reads your Gatekeeper setting
  3. 3It verifies the code signature file by file
  4. 4It checks notarization with Apple if needed
  5. 5Result is cached; the app opens
  6. 6Next launch skips the check and is instant
The Gatekeeper path on first launch. Step three is where the CPU goes, and it scales with app size.

Because the work is bursty, a single Activity Monitor glance can catch it at 100 percent and mislead you. Safe to Quit watches each process over hours, so a syspolicyd that fires once after an Xcode update looks very different from one that fires every five minutes all day.

What people hit, in their words

“the problem was the Monterey installer file (12 GB), Syspolicyd was scanning it every few minutes! Deleting the file solved the problem.”

Questions people ask

What is syspolicyd on Mac?

syspolicyd is the daemon that enforces Gatekeeper, the macOS security feature that checks apps before they run. It reads your Privacy & Security setting, verifies the app's code signature, confirms Apple's notarization, and honors the quarantine flag on downloads. It runs as root, starts at boot, and keeps a cache of approved items so apps you have already opened launch without a repeat check.

Why is syspolicyd using high CPU?

Because it is verifying something large. The first launch of a big app such as Xcode, a creative suite or a large game means reading every file in the bundle, which can take minutes at full CPU. A macOS update triggers re-checks on next launch. If it repeats every few minutes with nothing opening, a multi-gigabyte installer in Downloads is the usual cause; moving or deleting it ends the loop.

Can I quit syspolicyd?

No. It is a root system service, needs your password to end, and relaunches within a second. If an app was waiting on the check, quitting can leave the launch hanging and the next attempt starts over. There is nothing to gain. Let the check finish, or remove the large installer it keeps scanning. Do not disable Gatekeeper to make the process go away.

How long does syspolicyd take?

A few seconds for an ordinary app on first launch. Several minutes for Xcode or anything in the tens of gigabytes, because every file is verified. After a macOS update, expect a busier first day as apps are re-approved one by one. Once an item is approved it is cached, so the same app opens instantly the next time. Anything beyond a day of repeated runs is worth investigating.

Is syspolicyd a virus?

No. It is part of macOS, lives on the sealed system volume at /usr/libexec/syspolicyd, and is one of the components that protects you from malware. High CPU means it is checking something, which is reassuring rather than alarming. If an app you installed is being flagged by it, that is Gatekeeper working as designed; re-download the app from the developer's site if the warning seems wrong.

Sources and further reading