web-dev-qa-db-ja.com

NodeJs http-serverをPM2で永久に実行する

私の質問は、PM2と組み合わせてHTTPサーバーを実行することについてです。

私が直面する問題は次のとおりです:

  1. HTTPサーバーには、入力として、Webサイトのルートであるフォルダーと、Webサイトを実行するためのポート番号が必要です。
  2. PM2は、HTTPサーバーが-gオプションでインストールされている場合でも、HTTPサーバーコマンドを認識しません。

だから私は次のことを試しました(パラメータをHTTPサーバースクリプトに渡す必要がある二重ダッシュに注意してください:

/node_modules/http-server/lib$ pm2 start http-server.js -- /home/unixuser/websiteroot -p8686

しかし、それは機能しません。

私も試しました:

http-server /home/unixuser/websiteroot -p8686

どちらが機能しますが、pm2の大きなサポートはありませんか?

どんな提案も素晴らしいです、ありがとう!

17
Guy Hagemans

あなたはそれをほとんど持っていました。

次のコマンドを実行して、http-serverの場所を確認します。

$ which http-server

このようなものを取得する必要があります/usr/bin/http-server

次に、cdからファイルを提供して実行するディレクトリに移動します。

$ pm2 start /usr/bin/http-server --name my-file-server -- -p 8080 -d false

--name my-file-serverはオプションですが、--は、http-serverコマンドに引数を渡すために必要です。

37
G Man
pm2 start 'http-server-spa websiteroot index.html 8080'
1
Pablo Rosa
pm2 start <location>/http-server --name http-server -- -p <port> -d false

または

それ自体が提供するPM2モジュールには、http-server https://pm2.keymetrics.io/docs/usage/expose/ に似た、提供されるビルド内静的ファイルがあります

pm2 serve <path> <port>
1
Madan

gruntによって生成されたビルドがある場合は、そのパスに移動してヒットします。

~/app/build/prod$ Sudo pm2 start /usr/local/bin/http-server -p 8080

localhost:8080でアプリのステータスを確認してください

0
Jaswinder