Вы можете создать LaunchDaemon для запуска ngrok при запуске (или LaunchAgent, если вы хотите запустить ngrok после входа пользователя в систему). См. apple docs.
A 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
является Баш скрипт вида:
#!/bin/sh
/usr/local/bin/ngrok -log=/path/to/ngrok.log -config=/path/to/ngrok.yml start ssh
Вы можете проверить, что запуск программ начал свой демон, набрав:
sudo launchctl list com.ngrok.onstartup
Яблоко-Предпочтительным является метод с 'launchd' ... http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs –