privacy-guides/how-to-disable-cups-pinter-job-history-on-macos
2022-10-29 11:12:54 -04:00
..
2022-10-29 11:12:54 -04:00

How to disable CUPS pinter job history on macOS

Requirements

  • Computer running macOS Monterey or Ventura

Setup guide

Step 1: clear job history

Heads-up: purges /var/spool/cups.

$ cancel -a -x

Step 2: create /usr/local/sbin directory

sudo mkdir -p /usr/local/sbin
sudo chown ${USER}:admin /usr/local/sbin

Step 3: create cups.sh script

cat << "EOF" > /usr/local/sbin/cups.sh
#! /bin/sh

set -e

if grep -qe '^PreserveJobHistory Off$' /etc/cups/cupsd.conf; then
  exit 0
fi

echo "PreserveJobHistory Off" | sudo tee -a /etc/cups/cupsd.conf

launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist

launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
EOF

Step 4: make cups.sh executable

chmod +x /usr/local/sbin/cups.sh

Step 5: create local.cups.plist launch daemon

cat << "EOF" | sudo tee /Library/LaunchDaemons/local.cups.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>local.cups</string>

    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/sbin/cups.sh</string>
    </array>

    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>
EOF

Step 6: reboot