我正在尝试通过创建一个启动的plist并将其复制到/Library/LaunchAgents中并加载它来添加应用程序作为所有用户的登录项。
Plist是
<?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.testapp.UserAgent</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/TestAgent.app/Contents/MacOS/TestAgent</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
RunAtLoad 将在每次登录时启动应用程序。当我登录到机器中的所有不同用户帐户时,它对我有用,但是如果我手动退出它,那么它也会自行启动。
我怎样才能让它每次登录只启动一次,如果我退出它,那么它不应该自行启动。
使用launchd
的最佳资源,在macOS上启动进程的守护程序在这里:
https://www.launchd.info
在这里,很好地解释了除了RunAtLoad
之外还可以使用哪些其他设置或与它一起使用。
例如,在您的情况下,您可以使用密钥KeepAlive
,如下所示:
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
仅当进程以不同于 0 的代码退出时,这才会重新启动进程,这通常表示某些异常情况或错误。如果退出正常,那么您的进程将不会由 launchd
重新启动。
检查此站点上的选项卡Configuration
以了解您可以使用哪些其他配置。