Disable Tracker processes on linux

Slug: disable-tracker-processes-on-linux

3929 characters 431 words
#!/bin/bash set -euo pipefail # ----------------------------------------------------------------------------- # Script Name: disable_tracker.sh # Purpose : Disable Tracker processes on Debian 11 (Bullseye) for ARM64 RK3588 # This script appends "Hidden=true" to tracker-related autostart files, # updates Tracker settings via gsettings to disable file crawling and # monitoring, and resets the Tracker database. # # WARNING : This operation modifies system autostart files and resets the Tracker # database. If you rely on Tracker for desktop search or metadata indexing, # this action will disable those functions. It is recommended you backup any # critical data/configuration before proceeding. # # Usage : Run this script from your home directory. You must have sudo privileges. # ----------------------------------------------------------------------------- # Prompt for explicit user confirmation before proceeding. read -r -p "WARNING: This will disable Tracker processes by modifying system autostart files and resetting the Tracker database. This may affect desktop search functionality. Do you want to continue? (yes/NO): " confirmation if [[ "$confirmation" != "yes" ]]; then echo "Operation cancelled by user." >&2 exit 1 fi # Define an array of Tracker autostart file paths. autostart_files=( "/etc/xdg/autostart/tracker-extract.desktop" "/etc/xdg/autostart/tracker-miner-apps.desktop" "/etc/xdg/autostart/tracker-miner-fs.desktop" "/etc/xdg/autostart/tracker-miner-user-guides.desktop" "/etc/xdg/autostart/tracker-store.desktop" ) echo "Starting Tracker disabling procedure..." # Iterate over each autostart file and append "Hidden=true" if not already set. for file in "${autostart_files[@]}"; do echo "Processing file: ${file}" if [[ -f "$file" ]]; then if grep -q -E '^[[:space:]]*Hidden=true' "$file"; then echo "-> 'Hidden=true' already present in ${file}. Skipping." else echo -e "\nHidden=true\n" | sudo tee --append "$file" > /dev/null || { echo "Error: Failed to modify ${file}." >&2 exit 1 } echo "-> Appended 'Hidden=true' to ${file}." fi else echo "-> Warning: File ${file} does not exist. Skipping." fi done # Update Tracker settings using gsettings. echo "Disabling Tracker file crawling..." if ! gsettings set org.freedesktop.Tracker.Miner.Files crawling-interval -2; then echo "Error: Failed to set crawling-interval to -2 via gsettings." >&2 exit 1 fi echo "-> Set crawling-interval to -2." echo "Disabling Tracker file monitors..." if ! gsettings set org.freedesktop.Tracker.Miner.Files enable-monitors false; then echo "Error: Failed to disable file monitors via gsettings." >&2 exit 1 fi echo "-> File monitors disabled." # Reset the Tracker database. reset_cmd="" if command -v tracker3 >/dev/null 2>&1; then reset_cmd="tracker3 reset --filesystem --rss" elif command -v tracker >/dev/null 2>&1; then reset_cmd="tracker reset --hard" else echo "Warning: Neither 'tracker3' nor 'tracker' is available. Skipping Tracker database reset." >&2 fi if [[ -n "${reset_cmd}" ]]; then echo "Resetting Tracker database with: ${reset_cmd}" if ! ${reset_cmd}; then echo "Error: Failed to reset Tracker database." >&2 exit 1 fi echo "-> Tracker database has been reset." fi echo "Tracker disabling procedure completed successfully." exit 0
URL: https://ib.bsb.br/disable-tracker-processes-on-linux