2016-07-25 37 views
2

我有一个快递节点项目。我通过运行命令启动服务器 npm start在我的本地项目文件夹内,它按预期工作。如何在linux虚拟机中运行节点项目?

我试图在远程linux虚拟机上运行相同的命令。但关闭终端服务器后关闭。所以我试着从npm开始&nohup npm start &。 但关闭终端服务器后仍然停止。

那么如何在后台启动节点服务器进行快速项目呢?

我的package.json文件看起来是这样的:

{ 
    "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 **就像全球一样。我认为你使用快速框架。你可以像'永远启动bin/www'一样工作。永远是好的,它可以继续工作,即使你的node.js应用程序崩溃!你应该试试:) – 2016-07-25 13:32:49

+0

很酷。 **永远启动bin/www **按预期工作 –

0

在很多平台在终端启动它,您可以Run it as a service的:如果你用的永远dotenv在一起,你可以使用这个样子。上面的帖子中的答案就是一个很好的例子。此外,它不需要任何额外的软件包。

相关问题