在 OSX 上自动启动 ngrok
Posted
技术标签:
【中文标题】在 OSX 上自动启动 ngrok【英文标题】:Start ngrok automatically on OSX 【发布时间】:2015-02-21 00:51:26 【问题描述】:我正在尝试在我的 mac mini 启动时自动启动 ngrok。我想也许 OSX 有类似 ubuntu 上的 init 文件夹的东西,你可以在其中放置要自动启动的脚本,但我还没有找到类似的东西。
有没有办法只在 OSX 上启动时运行命令?
【问题讨论】:
Apple 首选的方法是launchd
... alvinalexander.com/mac-os-x/…
【参考方案1】:
您可以创建一个 LaunchDaemon 来在启动时运行 ngrok(如果您想在用户登录后启动 ngrok,则可以创建一个 LaunchAgent)。请参阅apple docs。
LaunchDaemon 是一个位于/Library/LaunchDaemons/
中的plist
。例如,我的 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
【讨论】:
以上是关于在 OSX 上自动启动 ngrok的主要内容,如果未能解决你的问题,请参考以下文章
在Mac上自动启动VirutalBox中的虚拟机 (Auto start VirtualBox VM in mac OSX)
启动 ngrok HTTP 隧道,但只转发到 HTTP 或 HTTPS,而不是两者