2014-03-27 72 views
1

我并不完全相信我在寻找什么符合......代理,守护进程或只是一个没有GUI的小型后台应用程序。如何为OSX创建守护程序/启动代理/后台应用程序?

我有一个小型的obj-c程序,我写在终端中运行。它需要不断地检查数据库中的值,并每秒调用大约2次调用。我已经有它的工作,我只是不知道如何建立这个东西释放...

理想情况下,我想用户能够安装它像一个普通的Mac应用程序,但我不知道如果这个有可能。我正在寻找类似于Dropbox在后台运行的方式,并通知用户一个新文件,或LogMeIn如何在后台运行某些内容,或者我也有一个名为Aurora的应用程序,该应用程序有一个名为“Aurora”的后台进程唤醒助手“。这些都是我想用这个小型obj-c程序模仿的例子。

我该如何在Xcode 5中构建这个版本?

回答

3

要将您的应用程序作为守护程序或代理运行,您应该创建.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

+0

太棒了。那么' -flag1 -flag2'是什么? ProgramArguments是程序本身的路径之一吗? –

+0

是的,第一部分'/path/to/me/daemon'是那个路径,你也可以指定一个命令行参数。 – Dmitry

相关问题