如何在 Mac OSX 中将应用程序添加为所有用户的登录项



我正在尝试通过创建一个启动的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以了解您可以使用哪些其他配置。

最新更新