Objective c 开发在用户使用xcode登录之前运行的osx deamon
您好,我正在尝试使用objective-C/xcode开发一个守护程序 我是mac world的新手,我能知道在xcode中选择什么样的项目模板以及如何做吗 我可以得到一个简单而基本的守护程序示例源代码吗 “命令行工具”项目足以开始编写守护程序。没有特殊的构建需求,这取决于您希望守护进程做什么 编写MacOSX守护进程的方式与在常规Unix系统上处理它的方式非常相似。因此,有几件事需要记住:Objective c 开发在用户使用xcode登录之前运行的osx deamon,objective-c,xcode,macos,daemon,Objective C,Xcode,Macos,Daemon,您好,我正在尝试使用objective-C/xcode开发一个守护程序 我是mac world的新手,我能知道在xcode中选择什么样的项目模板以及如何做吗 我可以得到一个简单而基本的守护程序示例源代码吗 “命令行工具”项目足以开始编写守护程序。没有特殊的构建需求,这取决于您希望守护进程做什么 编写MacOSX守护进程的方式与在常规Unix系统上处理它的方式非常相似。因此,有几件事需要记住: 非交互式:用户不能直接输入,但您还必须使用类似于syslogd的方法进行输出,因为该过程没有连接到终端
- 非交互式:用户不能直接输入,但您还必须使用类似于
的方法进行输出,因为该过程没有连接到终端syslogd
- 环境:不要假设它具有特定的当前目录、路径、默认权限或任何其他环境设置-明确设置这些设置
- 安全性:确保守护进程拥有执行其功能所需的最低权限,而不是更多权限(这本身就是一个巨大的主题)
- 信号:您需要捕获并响应某些信号,因为这些信号通常用于进程控制(例如,
强制守护进程重新加载其配置文件)SIGHUP
有一些要考虑的,主要是关于与<代码> 典型的守护进程将执行以下操作:
- double fork,用于从父进程分离
- 建立流程组和有效的UID
- 安装信号处理程序
- 设置文件权限umask
- 将目录更改为工作目录
- 读取配置文件
- 打开插座等
- 进入无限循环以服务请求
Wikipedia的文章中也有一个。为了澄清,这将是一个
启动守护程序
,而不是启动代理
LaunchDaemon
s以root用户身份运行(登录前需要运行),而LaunchAgent
s以用户身份运行。