2014-12-22 2 views
2

Я пытаюсь запустить ngrok автоматически, когда мой mac mini запускается. Я подумал, что, возможно, OSX имеет что-то вроде папки init на ubuntu, где вы размещаете скрипты, которые хотите начать автоматически, но я не нашел ничего подобного.Начать ngrok автоматически на OSX

Невозможно ли просто запускать команды при запуске на OSX?

+0

Яблоко-Предпочтительным является метод с 'launchd' ... http://alvinalexander.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs –

ответ

4

Вы можете создать 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