web-dev-qa-db-ja.com

バックグラウンドで実行されているngrok

私はバックグラウンドでngrokを実行してみました

./ngrok -subdomain test -config=ngrok.cfg 80 &

プロセスが実行されています

[1] 3866

サブドメインは機能しません。

で動作します

./ngrok -subdomain test -config=ngrok.cfg 80

あなたの誰もがここで何が起こっているか知っていますか?

18
martinenzinger

説明通り こちら

ngrok -log=stdout 80 > /dev/null &
20
martinenzinger

前に説明したように、バックグラウンドでngrokを実行できます

./ngrok http 8080 > /dev/null &

次に、curlを使用して、たとえばjqコマンドラインJSONプロセッサを使用できます。

export WEBHOOK_URL="$(curl http://localhost:4040/api/tunnels | jq ".tunnels[0].public_url")"

uRLは$ WEBHOOK_URL env変数からアクセスでき、どこでも使用できます。

16
Artem Zinoviev

ローカルマシンで http:// localhost:4040/status にアクセスするか、ここで詳細を参照してください: バックグラウンドで実行されたときにランダムなngrok URLを表示

12
Oliv

Ngrok 2では、-logは不要であり、使用できません(ただし、構成ファイルでログレベルを制御できます)。 ngrok > /dev/null & 十分なものです。

9
Chandler Swift

複数のシェルウィンドウを使用する場合、または最も簡単な方法は screen を使用する単一のSSHセッションからバックグラウンドでサービスを実行する場合。

Centos Linuxにインストールするには、yum install screen

次に、他のコマンドscreenのように開始し、その後にパラメーター内でngrokコマンドを入力します。

デタッチは画面の最も強力な部分です。画面を使用すると、ウィンドウからデタッチし、後で再アタッチできます。

ネットワーク接続に失敗すると、画面は自動的にセッションを切断します! 「Ctrl-a」「[〜#〜] d [〜#〜」を使用してウィンドウからデタッチできます。 ])。

これにより、シェルに戻ります。

すべての画面ウィンドウはまだそこにあり、後でscreen -r

7
Liudas Šumskas

実行./ngrok http 5000 > /dev/null &その後curl localhost:4040/status URLを確認する

6
Old Panda

実行./ ngrok http(ポート番号)&これにより、ngrokトンネルがバックグラウンドプロセスとして実行されます。 Ngrokは通常、割り当てられたURLを示すウィンドウを開きますが、Nohupコマンドを使用しているため、これは表示されません。

したがって、curl http://127.0.0.1:4040/api/tunnelsを実行すると、ngrokによって割り当てられたURLも表示されます

5
curl http://127.0.0.1:4040/api/tunnels 

public_url情報が表示されます。

以下に例を示します。 https://i.stack.imgur.com/V0905.png

3
Tung Tran

以下のスクリプトをngrok2に使用します

Nohup ngrok http 3000 &

これにより、ログがファイルNohup.outに書き込まれます

3
Chirag Shah

サービスとして実行してみてください。 ngrok Webサイトから確認してください。 Raspberry Pi 3でngrokバージョン2.2.8を試しました。

ngrok.service as

[Unit]
Description=Share local port(s) with ngrok
After=syslog.target network.target

[Service]
Type=simple
Restart=always
RestartSec=1min
StandardOutput=null
StandardError=null
ExecStart=/usr/local/sbin/ngrok start --log /var/log/ngrok.log --config /etc/ngrok.yml --all
ExecStop=/usr/bin/killall ngrok

[Install]
WantedBy=multi-user.target

設定ファイル:ngrok.yml authtoken:

tunnels:
  <your Tunel Name >:
    proto: http
    addr: 80
2
G. Kilic

そのためにscreenを使用できます。使用方法の例を次に示します。

screen -d -m〜/./ ngrok http test.cc:8080

0
Beto Aveiga

これは、バックグラウンドでngrokを実行する小さなbashスクリプトです。次に、curlコマンドを呼び出して( http://127.0.0.1:4040/api/tunnels )、その後にsedコマンド(ngrokを抽出する)を呼び出して、NGROK_PUBLIC_URL変数を設定しようとします。パブリックURL)。 NGROK_PUBLIC_URLが有効な値を持つまで、これはすべてループ内で実行されます。通常、トンネルが確立されるまでに2〜3秒かかります。

start-ngrok.sh

#!/bin/sh

# Set local port from command line arg or default to 8080
LOCAL_PORT=${1-8080}

echo "Start ngrok in background on port [ $LOCAL_PORT ]"
Nohup ngrok http ${LOCAL_PORT} &>/dev/null &

echo -n "Extracting ngrok public url ."
NGROK_PUBLIC_URL=""
while [ -z "$NGROK_PUBLIC_URL" ]; do
  # Run 'curl' against ngrok API and extract public (using 'sed' command)
  export NGROK_PUBLIC_URL=$(curl --silent --max-time 10 --connect-timeout 5 \
                            --show-error http://127.0.0.1:4040/api/tunnels | \
                            sed -nE 's/.*public_url":"https:..([^"]*).*/\1/p')
  sleep 1
  echo -n "."
done

echo
echo "NGROK_PUBLIC_URL => [ $NGROK_PUBLIC_URL ]"

スクリプトは、オプションのコマンドライン引数としてポートを取ります。

$ . start-ngrok.sh 1234

Run NGROK in background on port [ 1234 ]
Extracting ngrok public url ...
NGROK_PUBLIC_URL => [ 75d5faad.ngrok.io ]

...ただし、ポートが指定されていない場合、ポート8080で実行されます...

$ . start-ngrok.sh 

Run NGROK in background on port [ 8080 ]
Extracting ngrok public url ...
NGROK_PUBLIC_URL => [ 07e7a373.ngrok.io ]

NGROK_PUBLIC_URLにはパブリックURLが含まれるようになりました。

$ echo $NGROK_PUBLIC_URL
07e7a373.ngrok.io

これは、アプリケーションでアクセス/使用できます。

注:このスクリプトはsourced. start-ngrok.sh OR source start-ngrok.sh)これは、新しいシェルで正常に実行した場合に使用できない環境変数を設定しているためです(つまり、./start-ngrok.sh)。 https:// superuser .com/q/17678 詳細情報.

pkill/killなどを使用して、バックグラウンドのngrokプロセスを停止する小さなスクリプトを作成することもできます。

stop-ngrok.sh

#!/bin/sh

echo "Stopping background ngrok process"
kill -9 $(ps -ef | grep 'ngrok' | grep -v 'grep' | awk '{print $2}')
echo "ngrok stopped"
0
bobmarksie
Nohup /usr/local/bin/ngrok --config /etc/ngrok.yml http 8080 &

Ngrokアカウントとリンクする場合、ngrokサイトでパブリックURLを表示できます。ローカルURLをカールする必要はありませんパブリックURL https://dashboard.ngrok.com/status

0
Quang Nguyen

Nohup ./ngrok http 80&

Localhost:4040を押して、ngrokによって割り当てられたパブリックURLを取得します

0
Sagar Gupta