【问题标题】:How to setup launchd for telegraf on macos catalina如何在 macos catalina 上为 telegraf 设置 launchd
【发布时间】:2023-03-14 17:04:01
【问题描述】:

我希望在我的 Mac 上使用 launchd 在后台运行 telegraf。我正在使用无法通过自制软件安装的自定义电报二进制文件。因此,电报本身已设置并正在运行。我创建了一个 telegraf.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>telegraf</string>
        <key>ServiceDescription</key>
        <string>Telegraf Binary</string>
        <key>ProgramArguments</key>
        <array>             
            <string>/usr/local/bin/telegraf/telegraf.conf</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>

我不确定运行 telegraf 的字符串是否应该指向 /usr/local/bin/telegraf/telegraf.cong。这是因为,在终端中,我通过以下方式运行(并查看事件):

sudo ./telegraf --config telegraf.conf

数组中字符串值的正确值应该是多少?

【问题讨论】:

    标签: macos macos-catalina launchd telegraf


    【解决方案1】:

    ProgramArguments 数组应包含要运行的程序的路径,后跟要传递给它的参数(每个数组元素一个)。所以可能是这样的(假设程序本身位于/usr/local/bin/telegraf/telegraf):

    <key>ProgramArguments</key>
    <array>             
        <string>/usr/local/bin/telegraf/telegraf</string>
        <string>--config</string>
        <string>/usr/local/bin/telegraf/telegraf.conf</string>
    </array>
    

    如果 telegraf 对您的环境有任何其他依赖项(例如,它是否要求工作目录为 /usr/local/bin/telegraf?需要任何环境变量吗?),您可能需要添加到 .plist 来配置这些正确。

    【讨论】:

    • 你好戈登 - 这似乎有效。但是在系统重新启动后,我仍然需要手动运行下面的终端命令来启动 telegraf 服务。我认为那是 lauchd 应该做的?:``` - cd /Library/LaunchDaemons/ - sudo launchctl load telegraf.plist - sudo launchctl start telegraf ``` 只有当我仍然登录时,这才会持续存在。重新启动会停止电报服务。有什么想法吗?
    • @user2022284 它可能在启动过程中运行得太早,并且崩溃了。我建议通过添加StandardOutPathStandardErrorPath 键来捕获其输出和错误流,指向适当的日志位置。您还可以添加&lt;key&gt;KeepAlive&lt;/key&gt;&lt;true/&gt;,以便在它崩溃时重新启动它。
    【解决方案2】:

    就我而言,我的脚本在 macOS Mojave 上运行。通过launchd 在 macOS Catalina 10.15.3 上运行我的脚本的缺失步骤是:

    系统偏好 > 安全和隐私 > 隐私 > 全盘访问 > 终端 kbd> > 打开它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-13
      • 2020-02-07
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      相关资源
      最近更新 更多