リモートに接続しているサーバーで ngrok を実行しています。
明らかなngrok.exe http 80
を使用して開始します。問題は、その特定のサーバーでサインオフすると、ngrokが閉じて、トンネルが失われることです。マシンをサインオフした場合でも、ngrokトンネルを実行し続ける方法はありますか?マシンがシャットダウンされた場合、トンネルを実行し続けるために私にできることは何もないことを理解しています。それは明らかです。何か案は?
前もって感謝します。
あなたが言ったように、マシンがシャットダウンされた場合、プロセスを実行し続ける方法はありません。これを行うにはいくつかの方法があります。これらの各方法では、次の構成ファイルがすでにあると想定しています。
config.yml
authtoken: <your-auth-token>
tunnels:
default:
proto: http
addr: 80
Ngrok linkを使用すると、次のコマンドを実行するだけです。
ngrok service install -config /path/to/your/config.yml
ngrok service start
これで、特定のオペレーティングシステムで実行されている他のサービスと同じようにngrokを管理できるようになります。
Nohupコマンドは通常、MacOSとLinuxにデフォルトでインストールされます。コマンドをそのまま実行するには:
Nohup ngrok start --all --config="path/to/config.yml" &
画面で実行すると、ここでも同じ効果が得られるはずです。
サービスを作成するには、サービス以外の実行可能ファイルからサービスを作成するためのプログラムをダウンロードする必要があります。ここでは、NSSM(Non-Sucking Service Manager)を使用してこれを行う方法について説明します。
次のコマンドを実行します。
nssm.exe install ngrok
表示されるウィンドウでngrok実行可能ファイルを選択し、引数に以下を追加して、[サービスのインストール]を押します。
start --all --config="C:\path\to\my\config.yml"
これで、サービスマネージャからサービスを管理できるようになりました。起動するには、管理ターミナルを開き、以下を実行します。
sc start ngrok
ルートが必要です。
/ etc/systemd/system /にcdします
次のファイルを作成します。
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