gpt4 book ai didi

macos - 创建一个作为守护进程运行的简单 Hello World 工具

转载 作者:行者123 更新时间:2023-12-03 16:17:20 28 4
gpt4 key购买 nike

我在 Xcode 中构建了命令行工具(基础)模板。它只是将“Hello World”记录到控制台。main.m 中只有一个类。代码如下:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])

{

   @autoreleasepool {

// insert code here...
NSLog(@"Hello, World!");

}
return 0;

}

现在我想将它作为守护进程运行,并每 10 秒将“Hello World”记录到控制台。因此,我将产品/二进制文件移至 Mac 上的 /tmp 中。我为 launchd 创建了以下 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>Label</key>
<string>helloDaemon</string>
<key>ProgramArguments</key>
<array>
<string>/tmp/helloDaemon</string>
</array>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>

我使用 launchctl 加载了 plist,但在控制台中没有看到任何“Hello World”。相反,我得到了这个:

11/03/2012 00:55:35.141 com.apple.launchd: (helloDaemon) Throttling respawn: Will start in 1 seconds
11/03/2012 00:55:45.141 com.apple.launchd: (helloDaemon) Throttling respawn: Will start in 2 seconds
11/03/2012 00:55:55.140 com.apple.launchd: (helloDaemon) Throttling respawn: Will start in 3 seconds

那么到底出了什么问题呢?

最佳答案

只需添加到您的 launchd plist

<key>StandardOutPath</key>
<string>/yourpath/sample.log</string>

之后您可以tail -f它。

更多信息在这里: http://developer.apple.com/library/mac/technotes/tn2083/_index.html#//apple_ref/doc/uid/DTS10003794-CH1-SUBSECTION39

关于macos - 创建一个作为守护进程运行的简单 Hello World 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9649864/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com