I've be trying to use launchctl commands to try stop QRecall from respawning all its processes to no avail. As fast as I kill the process, it starts it back up. I need to unmount a volume that the program keeps accessing. Killing the processes (ps aux | grep -I qrecall, then kill PID...) after trying halt the launcthd using
First, let's back up a step. Please describe the file(s) that QRecall is keeping open that are preventing your volume from unmounting.
None of the QRecall background components should be keeping any open files on external volumes, except the binary executable files themselves ... and those shouldn't be on volumes that would ever be unmounted while the system was running. The scheduler and monitor will occasionally check the reachability and status of archives and it may watch for changes in certain directories, but neither of these should prevent a volume from unmounting.
I also noted that the path /Volumes/xxxx/Users/yyyyy/Library/LaunchAgents/com.qrecall.scheduler.plist might indicate that your home folder is not on the startup volume, which could complicate your installation.
Finally, launchctl unload is a legacy command that's no longer supported; I'm not even sure it would work. Even if it does your command is targeting the wrong session type.