在Mac上,共有4钟后台进程类型,可以参考Designing Daemons and Services。要实现启动服务,又不依赖于用户,可以使用Launch Daemon。
创建Launch Daemon
- 运行Xcode,创建一个简单的命令行应用WebTwainService。
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); } while (1) { sleep(100); } return 0; }
- 编译工程,把WebTwainService放到/Applications/Dynamsoft/WebTwainService.
- 参考 Create Launch Daemons and Agents,创建配置文件com.dynamsoft.WebTwainService.plist.
- StandardErrorPath & StandardOutPath: service日志文件路径
- KeepAlive. 设置成true. 一旦WebTwainService异常崩溃, 系统会自动重启服务。
- Label: 一个唯一值
- ProgramArguments: 可执行文件路径
- 这个plist配置文件可放置的地方包括:
- ~/Library/LaunchAgents
- /Library/LaunchAgents
- /Library/LaunchDaemons
- /System/Library/LaunchAgents
- /System/Library/LaunchDaemons
- 把com.dynamsoft.WebTwainService.plist放到/Library/LaunchDaemons下。
- 要成功注册服务,还必须修改目录权限:sudo chown root /Library/LaunchDaemons/com.dynamsoft.WebTwainService.plist.
- 命令行中输入sudo launchctl运行launchd
- 注册服务load -D system /Library/LaunchDaemons/com.dynamsoft.WebTwainService.plist。然后我们可以看到服务被加载了:
- 输入list可以查看运行的进程
- 现在重启系统,然后打开日志/var/log/webtwain.log,查看服务是否在运行了:
时间: 2024-11-05 21:39:57