Как вы сказали, если машина выключена, процесс не будет поддерживаться.Есть несколько способов сделать это.В каждом из этих методов я предполагаю, что у вас уже есть следующий файл конфигурации:
config.yml
authtoken: <your-auth-token>
tunnels:
default:
proto: http
addr: 80
Ngrok Link (Windows / Mac OS / Linux, Commercial)
С помощью ссылки ngrok просто выполните следующие команды:
ngrok service install -config /path/to/your/config.yml
ngrok service start
После этого вы сможете управлять ngrok так же, как и любой другой сервис, работающий в данной операционной системе.
Nohup (Maco OS / Linux)
Обычно команда nohup устанавливается по умолчанию в Mac OS и Linux.Чтобы выполнить команду следующим образом:
nohup ngrok start --all --config="path/to/config.yml" &
Запуск на экране также должен привести к тому же эффекту.
Создание службы Windows (Windows)
СозданиеСервис, вам нужно будет скачать программу для создания сервисов из не сервисных исполняемых файлов.Здесь я собираюсь сделать это с помощью NSSM (Non-Sucking Service Manager).
- Загрузите исполняемый файл
- Откройте CMD и cd в том же каталоге, что и nssm.exe
Выполните следующую команду:
nssm.exe install ngrok
выберите исполняемый файл ngrok в появившемся окне и добавьте следующее к аргументам, затем нажмите 'Установить службу '.
start --all --config="C:\path\to\my\config.yml"
Службой теперь можно управлять из диспетчера служб.Чтобы запустить его, откройте административный терминал и выполните следующее:
sc start ngrok
Создание службы systemd (только для Linux - systemd)
Требуется root.
cd в / etc / systemd / system /
Создайте следующий файл:
ngrok.service
[Unit]
Description=Ngrok
After=network.service
[Service]
type=simple
User=<your_user_name>
WorkingDirectory=/home/<your_user_name>
ExecStart=/usr/bin/ngrok start --all --config="/path/to/config.yml"
Restart=on-failure
[Install]
WantedBy=multi-user.target
Затем выполните следующую команду, чтобы запустить и включить службу
systemctl enable ngrok.service && systemctl start ngrok.service
Источники:
https://ngrok.com/docs/ngrok-link#service
https://www.freedesktop.org/software/systemd/man/systemd.unit.html
https://nssm.cc/commands