如何在linux VM中运行节点项目?

时间:2016-07-25 13:06:20

标签: node.js linux ubuntu express angular

我有一个快速节点项目。我通过运行命令启动服务器 npm start 在我本地的项目文件夹中,它按预期工作。

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

那么如何在后台启动Express项目的节点服务器?

我的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"
  }
}

4 个答案:

答案 0 :(得分:1)

你可以永远使用,

npm install -g forever

并且可以从:

开始
forever start bin/www

也许这不是适合您情况的最佳方式,但它应该有效。你可以像这样永远看到工作过程:

forever list

请记住,当你在项目目录中时,你应该永远开始。

我推荐dotenv。 https://www.npmjs.com/package/dotenv 您可以根据工作空间设置环境。如果你永远使用和dotenv一起使用,你可以像这样使用:

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

答案 1 :(得分:0)

你可以“永远”使用npm包:

将其安装为全局:

[sudo] npm install forever -g

跑完后:

forever start app.js

完整文档:https://www.npmjs.com/package/forever

答案 2 :(得分:0)

您可以在许多平台上Run it as a service而不是在终端中启动它。上面帖子中的答案给出了一个很好的例子。此外,它不需要任何额外的包。

答案 3 :(得分:0)

另一个运行节点应用程序的最佳工具是pm2

使用pm2

安装并运行
npm install pm2 -g
pm2 start app.js

http://pm2.keymetrics.io/上了解有关pm2的更多信息