Best Solution:
You can create a script that runs whenever nsurlsessiond is created and stops it automatically, you can use launchd, a built-in system service on macOS that manages processes and runs scripts at specific intervals or in response to specific events.
Here are the steps to create a launchd script that monitors nsurlsessiond and stops it automatically:
1- Open the Terminal application on your MacBook.
2- Create a new launchd configuration file by running the following command:
nano ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist
This will open the nano text editor and create a new file named com.example.nsurlsessiond-monitor.plist in the LaunchAgents directory.
3- Paste the following XML code into the nano text editor:
<?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>com.example.nsurlsessiond-monitor</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>while true; do
if pgrep nsurlsessiond > /dev/null; then
killall nsurlsessiond
fi
sleep 5
done</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
</dict>
</plist>
This code defines a launchd configuration file that runs a bash script that checks if nsurlsessiond is running every 5 seconds and stops it if it is. The KeepAlive key ensures that the script is always running, and the SuccessfulExit key ensures that the script is restarted if it exits with an error.
4- Save the file and exit nano by pressing Control+O, then Enter, and then Control+X.
5- Load the launchd configuration file by running the following command:
launchctl load ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist
This will register the launchd job and start running the script.
Now, whenever nsurlsessiond is created, the script will automatically stop it. If you want to stop the script manually, you can unload the launchd configuration file by running the following command:
launchctl unload ~/Library/LaunchAgents/com.example.nsurlsessiond-monitor.plist