Pm2がnpm起動スクリプトを実行する方法はありますか、それともpm2 start app.js
を実行するだけですか?
開発中です
npm start
それからpm2のプロダクションでは、次のように実行します。
pm2 start 'npm start'
永遠にこれを行うための同等の方法があります。
forever start -c "npm start" ./
PM2はnpm startをサポートします。
pm2 start npm -- start
Pm2プロセスを実行するために.json
ファイルのような設定スクリプトを使用している人はnpm start
またはこのような他のスクリプトを使用することができます -
my-app-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
それから単純に -
pm2 start my-app-pm2.json
編集 - この設定スクリプトを親ディレクトリに置き、サブディレクトリでアプリを起動する場合のユースケースを処理するには、cwd
を使用します。属性。
我々のアプリがこの設定ファイルに関連したサブディレクトリnested-app
にあると仮定すると -
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
もっと詳しく ここ 。
はい。 pm2 start npm --no-automation --name {app name} -- run {script name}
を使用してください。できます。 --no-automation
フラグがあります それがなければPM2はクラッシュしてもあなたのアプリを再起動しませんので
以下にシェルスクリプトを書きました(start.sh
という名前)。私のpackage.json
にはprestart
オプションがあるからです。だから私はnpm start
を実行したいのです。
#!/bin/bash
cd /path/to/project
npm start
次にpm2でstart.sh
を起動します。
pm2 start start.sh --name appNameYouLike
npm run
を使用する
pm2 start npm --name "{app_name}" -- run {script_name}
クラスタリングを有効にします。
pm2 start npm --name "AppName" -i 0 -- run start
どう思いますか?
はい、できるようになりました。pm2はnpm startをサポートし、 - nameからspecies app nameに対応します。
pm2 start npm --name "app" -- start
残念ながら、スクリプトstart:prod
を実行するのは運が悪いです。
"scripts": {
"start:prod": "node index.js"
},
コマンドpm2 start npm -- run start:prod
がクラッシュしました
残念ながら、pm2はあなたが要求した正確な機能をサポートしていないようです https://github.com/Unitech/PM2/issues/1317 。
代わりの方法としては、ecosystem.json
ファイルを使うことです デプロイメントのはじめに これにはプロダクション環境と開発環境のセットアップを含めることができます。ただし、これはまだnpm start
を使用してアプリをブートストラップしています。
pm2 start ./bin/www
走れます
複数のサーバーを配置したい場合は、それを実行できます。 pm2ではなくstart npm - start
今、あなたは後に使用することができます:
pm2 start npm -- start
続きます https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
開始する前にスペースを忘れないでください
pm2 start npm --[space]start
正しいコマンドは次のとおりです。
pm2 start npm -- start