3

我正在尝试在我的 mac mini 启动时自动启动 ngrok。我想也许 OSX 有类似 ubuntu 上的 init-folder 的东西,你可以在其中放置要自动启动的脚本,但我还没有找到类似的东西。

有没有办法只在 OSX 上启动时运行命令?

4

1 回答 1

7

您可以创建一个 LaunchDaemon 以在启动时运行 ngrok(如果您想在用户登录后启动 ngrok,则可以创建一个 LaunchAgent)。请参阅苹果文档

LaunchDaemon 是一个plist驻留在/Library/LaunchDaemons/. 例如,我的 LaunchDaemon ( /Library/LaunchDaemons/com.ngrok.onstartup.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>com.ngrok.onstartup</string>

    <key>Program</key>
        <string>/path/to/ngrokd</string>

    <key>KeepAlive</key>
        <true/>

</dict>
</plist>

只要标签唯一地标识您的守护程序,标签的选择就由您决定。在这个例子中,我的 LaunchDaemon 被调用com.ngrok.onstartup

ngrokd是一个 bash 脚本,如下所示:

#!/bin/sh
/usr/local/bin/ngrok -log=/path/to/ngrok.log -config=/path/to/ngrok.yml start ssh

您可以通过键入以下内容来检查 launchd 是否启动了您的守护程序:

sudo launchctl list com.ngrok.onstartup
于 2015-02-18T14:24:18.170 回答