【问题标题】:How can I create a daemon/launch-agent/background application for OSX?如何为 OSX 创建守护程序/启动代理/后台应用程序?
【发布时间】:2014-03-27 06:08:59
【问题描述】:

我不确定我要寻找的内容是...代理、守护程序,还是只是一个没有 GUI 运行的小型后台应用程序。

我编写了一个在终端中运行的小型 obj-c 程序。它需要不断检查数据库中的值,并且每秒大约调用 2 次。我已经让它工作了,我只是不确定如何构建这个东西来发布......

理想情况下,我希望用户能够像安装常规 Mac 应用程序一样安装它,但我不确定这是否可行。我正在寻找类似于 Dropbox 在后台运行并通知用户新文件的方式,或者 LogMeIn 如何在后台运行的东西,或者我还有一个名为 Aurora 的应用程序,它有一个名为“Aurora”的后台进程唤醒助手”。这些是我试图用这个小的 obj-c 程序模仿的例子。

我将如何构建它以在 Xcode 5 中发布?

【问题讨论】:

    标签: objective-c xcode macos xcode5 launchd


    【解决方案1】:

    要将您的应用程序作为守护程序或代理运行,您应该创建一个 .plist 文件并将其放入 /Library/LaunchDaemons/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>KeepAlive</key>
        <true/>
        <key>Label</key>
        <string>com.example.daemon</string>
        <key>ProgramArguments</key>
        <array>
            <string>/path/to/me/daemon</string>
            <string>-flag1</string>
            <string>-flag2</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>SessionCreate</key>
        <true/>
        <key>UserName</key>
        <string>mrDaemonUser</string>
    </dict>
    </plist>
    

    您可以在Daemons and Services Programming Guide找到更多信息。

    要在用户计算机上安装您的应用程序,您应该创建一个安装程序包并编写一些脚本以将您的文件放在用户系统上的正确位置。有关更多信息,请参阅此主题:Making OS X Installer Packages like a Pro

    【讨论】:

    • 太棒了。那么&lt;string&gt;-flag1&lt;/string&gt; &lt;string&gt;-flag2&lt;/string&gt; 是什么? ProgramArguments 之一是程序本身的路径吗?
    • 是的,第一部分&lt;string&gt;/path/to/me/daemon&lt;/string&gt; 是该路径,您也可以指定命令行参数。
    • 我创建了这个 Plist 但我怎么能放在这里?我收到错误:在 /System/Library/LaunchAgents/MYservice.plist 上打开:不允许操作 [SwiftyPlistManager] 无法复制文件。错误:无法复制“MYservice.plist”,因为您无权访问“LaunchAgents”。
    猜你喜欢
    • 1970-01-01
    • 2014-09-08
    • 2013-12-05
    • 1970-01-01
    • 2012-12-16
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多