My launchAgent service is launching my application multiple times even if configuration has RunAtLoad true and OnDemand true

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

Replies

A launch agent will keep the process running, even if you manually quit it.