使用Objective-C编写的Mac OS X守护进程 - launchd

11

我刚进入Mac OS X的世界,但在Windows开发方面有技能。

我需要开发一个守护进程(在Windows上将是Windows服务),从Web服务上传/下载文件。

我的问题是:是否可以创建一个用Objective-C编写的应用程序作为守护程序(用于上传/下载),并使用launchd在操作系统启动时启动它?还是有其他方法可以创建守护程序?

谢谢

2个回答

4
在OS X上,这些服务被称为LaunchDaemon(系统范围)和LaunchAgent(用户特定)。您需要创建一个配置文件,告诉系统何时启动,运行哪个可执行文件,如何处理stdin、stdout和stderr,传递哪些参数等等。请参阅以下手册页面:
launchd(8)       # the service controlling other services
launchctl(1)     # the command to control services
launchd.plist(5) # the configuration format for services

守护进程可以用任何在OS X上运行的语言编写。因此,Objective-C是Mac平台的典型选择,但其他任何语言,从Ruby、Python和Perl到AppleScript和C或C++都可以。并且,在Mac上没有其他(推荐的)方法来完成这项工作。init.d风格的脚本不适用于Mac [或Darwin,即它的UNIX层]。更准确地说,没有运行它们的基础设施。有关更多信息,请参见守护进程和服务编程指南

强调:可以用任何语言编写。不应在LaunchDaemon或系统级LaunchAgent中使用Obj-C,因为存在InputManager黑客! - Richard

2

谢谢,这正是我正在寻找的东西。 - avmauricio

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接