I have installed citrix receiver on my home macbook. It auto starts on login yet it does not show an entry in the Login Items tab under the Users and Groups pane of System Preferences. How can I disable the service from starting on login?
The following services are are started at login by
/Library/LaunchAgents/com.citrix.AuthManager_Mac.plist /Library/LaunchAgents/com.citrix.ReceiverHelper.plist /Library/LaunchAgents/com.citrix.ServiceRecords.plist
You can use
launchctl to stop the processes like so
launchctl stop com.citrix.AuthManager_Mac
However I am currently unable to prevent launchd from autoloading these services through
launchctl. It is irrelevant because the Citrix Receiver App will not start those services when it starts and will therefore not work if they were stopped or disabled.
I did notice these services are unneeded if using the the companies web app. Considering that one can just delete the above .plist files and only use the web app.
Like @cheezsteak mentions, starting and stopping is done through
launchctl. The process below allows you to stop autostart at boot.
First, I fetched a list of all "citrix" processes that run on startup:
launchctl list | grep citrix
In order to remove them completely from starting up automatically, I use the following commands:
launchctl remove com.citrix.ServiceRecords launchctl remove com.citrix.ReceiverHelper launchctl remove com.citrix.AuthManager_Mac
The only issue now is that when you open the Citrix Receiver application, you may get something like the following error:
Unable to connect to the citrix AuthManager service
To fix this, you manually need to start the services again:
launchctl load /Library/LaunchAgents/com.citrix.ServiceRecords.plist launchctl load /Library/LaunchAgents/com.citrix.ReceiverHelper.plist launchctl load /Library/LaunchAgents/com.citrix.AuthManager_Mac.plist
Unfortunately, this is a bit of a cumbersome process. Especially to repeat it every now and then. But I've made it simple as an Automator task, which runs the mentioned commands to start the service and immediately after start the Citrix Receiver.
Actually, I have no doubt that it is relatively easy for Citrix to make this configurable as a preference. There is actually a discussion on their forum about this, but it appears dead and without response. For the time being - and as mere principle - I choose the hard way myself.
For further reference about launchctl, this AskDifferent answer is quite helpful.
Creating an app in Automator with shell script works fine to unload at startup without removing the plist files.
You have to add :
launchctl unload –w /Library/LaunchAgents/com.citrix.AuthManager_Mac.plist launchctl unload –w /Library/LaunchAgents/com.citrix.ReceiverHelper.plist launchctl unload –w /Library/LaunchAgents/com.citrix.ServiceRecords.plist
Add this app to run at startup and it'll solve the error when you open the Citrix Receiver application.