My purpose is to launch my application during every login but is being launched multiple times. I copied my below plist file in to /Library/LaunchAgents and game root ownership and chmod 600 <?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>en com.test.UserAgent</string> <key>ProgramArguments</key> <array> <string>/Applications/Test/Test Agent.app/Contents/MacOS/Test Agent</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> When I login it loads and I can see it in launchctl list as 825 0 com.test.UserAgent 825 ==> Pid of my running application When I quit my agent manually I see _ 0 com.test.UserAgent - ==> Which means application is currently not running Then I relaunched my application manually I see this in launchctl list 7075 0 com.test.workagent.30264 7075 ==> Pid of my application running After some time my launchd is also trying to load launch agent service I see another instance of my application is being run. 8124 0 com.test.UserAgent ==> LaunchAgent Service 7075 0 com.test.workagent.30264. ==> Manually launched from applications Expected behaviour is launch agent service should not launch my application again other than during login time