2016-07-25 4 views
2

私はエクスプレスノードプロジェクトを持っています。私のローカルのプロジェクトフォルダ内に npm startというコマンドを実行してサーバを起動すると、期待通りに動作します。LinuxのVMでノードプロジェクトを実行するには?

リモートのlinux VMで同じコマンドを実行しようとしました。しかし、終了後、ターミナルサーバーはシャットダウンしています。そこで、私はnpm start &nohup npm start &から始めようとしました。 しかし、ターミナルサーバーを閉じた後もまだ停止しています。

エクスプレスプロジェクトのノードサーバーをバックグラウンドで起動するにはどうすればいいですか?

{ 
    "name": "test_project", 
    "version": "0.0.0", 
    "private": true, 
    "scripts": { 
    "start": "concurrently \"tsc -w\" \"node ./bin/www\" ", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "typings": "typings install", 
    "bundle": "node bin/bundler.js", 
    "bundle:prod": "node bin/bundler.js --prod" 
    }, 
    "dependencies": { 
    "body-parser": "~1.13.2", 
    "cookie-parser": "~1.3.5", 
    "debug": "~2.2.0", 
    "express": "~4.13.1", 
    "morgan": "~1.6.1", 
    "serve-favicon": "~2.3.0", 
    "mongodb": "2.2.4", 
    "request": "~2.73.0" 
    }, 
    "devDependencies": { 
    "@angular/common": "2.0.0-rc.3", 
    "@angular/compiler": "2.0.0-rc.3", 
    "@angular/core": "2.0.0-rc.3", 
    "@angular/http": "2.0.0-rc.3", 
    "@angular/platform-browser": "2.0.0-rc.3", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.3", 
    "@angular/router": "^3.0.0-alpha.7", 
    "@angular/router-deprecated": "2.0.0-rc.2", 
    "@angular/upgrade": "2.0.0-rc.3", 
    "systemjs": "0.19.27", 
    "core-js": "^2.4.0", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.6", 
    "zone.js": "^0.6.12", 
    "angular2-in-memory-web-api": "0.0.12", 
    "concurrently": "^2.0.0", 
    "systemjs-builder": "^0.15.17", 
    "typescript": "^1.8.10", 
    "typings": "^1.3.0", 
    "yargs": "^4.7.1" 
    } 
} 
+0

「npm start」と「disown」と言ったらどうしますか? [コマンドを実行しないでターミナルを閉じるにはどうしたらいいですか?](http://unix.stackexchange.com/q/4004/40596) – fedorqui

+0

2分後に停止しました。 ** hangup **はnohup.outにあります –

答えて

1

あなたは、永遠に

npm install -g forever 

を使用することができますし、で始めることができます。たぶんこれはあなたの状況のた​​めに最善の方法ではありませんが、それは動作するはず

forever start bin/www 

forever list 

プロジェクトディレクトリにいるときには、永遠に作業を開始する必要があります。

私はdotenvをお勧めします。 https://www.npmjs.com/package/dotenv 作業スペースに合わせて環境を設定できます。

forever start -c "node -r dotenv/config" bin/www dotenv_config_path=.development 
+0

私は質問を編集しました。 –

+0

さて、あなたはあなたのpackage.jsonに永遠に置く必要はありません**私は言ったように**永遠に**グローバルとしてインストールしてください。そして私はあなたが明示的なフレームワークを使用すると思います。 'forever start bin/www'のように働くことができます。永遠に良いです、それはあなたのnode.jsアプリケーションがクラッシュしても動作し続けることができます!あなたは試してみる必要があります:) –

+0

クール。 **永遠にスタートbin/www **は期待通りに働いた –

0

あなたは "永遠" NPMパッケージを使用することができます:

がグローバルとしてそれをインストール:実行した後に

[sudo] npm install forever -g 

を:

マイpackage.jsonファイルは次のようになります

forever start app.js 

完全なドキュメントtation:https://www.npmjs.com/package/forever

0

の代わりにあなたは多くのプラットフォーム上でRun it as a service可能な端末でそれを起動する:あなたは永遠に使用し、一緒にdotenvなら、あなたはこのように使用することができます。上のポストの答えが素晴らしい例です。また、追加のパッケージは必要ありません。

関連する問題