在OSX上自动启动ngrok

4

我正在尝试在我的Mac Mini开机时自动启动ngrok。我认为可能OSX有类似于Ubuntu上的init文件夹,在其中放置要自动启动的脚本,但我没有找到类似的东西。

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


苹果首选的方法是使用launchd... http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs - Mark Setchell
1个回答

8
你可以创建一个LaunchDaemon来在启动时运行ngrok(或者一个LaunchAgent,如果你想在用户登录后启动ngrok)。请参阅苹果文档
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.onstartupngrokd是一个类似于以下内容的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

请在plist文件以及脚本所涉及的文件上添加权限说明。launchctl将以哪个用户身份运行该守护程序? - Dmytro Bogatov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接