V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
0x001
V2EX  ›  Node.js

vps 上运行 nodejs 后台运行

  •  
  •   0x001 · 2014-06-02 20:48:50 +08:00 · 10859 次点击
    这是一个创建于 3828 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用ssl命令连接到digitalocean的vps, 我node app.js运行nodejs app后,如果我关闭这个ssl连接,那vps上nodejs app也会结束。

    请问什么命令让它一直运行在后台,我ssl连接断后,nodejs app也一直运行?
    第 1 条附言  ·  2014-06-02 21:30:37 +08:00
    ssh远程后,screen这个命令可以新建一个窗口,可以ctrl a d离开,这是我需要的。非常不错。
    26 条回复    2014-06-19 12:48:52 +08:00
    XXOO
        1
    XXOO  
       2014-06-02 20:50:48 +08:00
    pm2
    0x001
        2
    0x001  
    OP
       2014-06-02 20:51:32 +08:00
    @XXOO pm2没有这个命令呀

    不过我找到了nohup node app.js
    66CCFF
        3
    66CCFF  
       2014-06-02 20:53:27 +08:00
    如果你想要崩溃重启可以npm install forever -g
    chemzqm
        4
    chemzqm  
       2014-06-02 20:57:46 +08:00
    PM2功能多一些,但是使用起来也更复杂,一般forever就够了,附送一段bash脚本

    #! /bin/bash

    DIR=/home/dash/__placeholder__
    LOG_FOLDER=$DIR/log
    DATE=`date +%Y%m%d`

    mkdir -p $LOG_FOLDER

    case "$1" in
    start)
    PORT=9380 NODE_ENV=production forever start -a -l $LOG_FOLDER/__placeholder__.log -o $LOG_FOLDER/out.log -e $LOG_FOLDER/err.log $DIR/app.js
    ;;
    stop)
    forever stop $DIR/app.js
    ;;
    restart)
    $0 stop
    $0 start
    ;;
    status)
    ;;
    reload)
    ;;
    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
    ;;
    esac
    exit 0
    jakwings
        5
    jakwings  
       2014-06-02 20:58:27 +08:00
    自己安装 pm2
    然后 pm2 app.js
    cevincheung
        6
    cevincheung  
       2014-06-02 20:59:23 +08:00
    @0x001

    node app.js > /dev/null &
    lm902
        7
    lm902  
       2014-06-02 21:04:29 +08:00
    运行 nohup ./app.js 然后直接关掉控制台
    日志会保存到nohup.out
    zoudm
        8
    zoudm  
       2014-06-02 21:04:42 +08:00
    是ssh连接? ssl是啥。。

    ssh的话 screen命令也可以
    chenshaoju
        9
    chenshaoju  
       2014-06-02 21:15:17 +08:00
    我的SS(node.js)是这样后台运行的:
    (node /var/shadowspdy/bin/spserver >/dev/null 2>&1 &)
    0x001
        10
    0x001  
    OP
       2014-06-02 21:18:12 +08:00
    @cevincheung 这个不能看到日志
    ohsc
        11
    ohsc  
       2014-06-02 21:18:47 +08:00
    pm2是个好东西
    0x001
        12
    0x001  
    OP
       2014-06-02 21:18:55 +08:00
    @jakwings pm2 logs看到的日志有好多都是库输出的,我只想看到我的console.log的日志,你知道如何弄吗?
    0x001
        13
    0x001  
    OP
       2014-06-02 21:20:09 +08:00
    @zoudm 对我是ssh连接,打错了。 ssh screen命令可能就是我想要的
    blueandhack
        14
    blueandhack  
       2014-06-02 21:25:32 +08:00
    使用pm2部署应用
    Jeremial
        15
    Jeremial  
       2014-06-02 21:26:22 +08:00
    我使用forever 比较习惯, pm2感觉有点复杂
    XXOO
        16
    XXOO  
       2014-06-02 21:32:15 +08:00
    pm2多牛啊。还可以有监控,还可以根据cpu核心来运行。。。
    laogui
        17
    laogui  
       2014-06-02 21:47:05 +08:00
    pm2比forever更好用
    jakwings
        18
    jakwings  
       2014-06-02 21:53:52 +08:00
    @0x001 貌似还没有这个功能……
    不过至少可以不保存 pm2 的日志:pm2 -o /dev/null -e /dev/null
    cevincheung
        19
    cevincheung  
       2014-06-02 22:03:19 +08:00
    @0x001

    command > /file 呗 。
    qianlifeng
        20
    qianlifeng  
       2014-06-02 22:05:04 +08:00
    screen
    foru17
        21
    foru17  
       2014-06-03 01:29:15 +08:00
    目前我是用forever
    fedoral
        22
    fedoral  
       2014-06-03 02:09:20 +08:00
    forever +1
    ysjdx
        23
    ysjdx  
       2014-06-03 08:42:46 +08:00
    screen + 1
    koolob
        24
    koolob  
       2014-06-03 13:31:26 +08:00
    我用的nohup
    fansekey
        25
    fansekey  
       2014-06-04 10:53:30 +08:00
    @XXOO pm2 `npm install -g pm2`
    solodxg
        26
    solodxg  
       2014-06-19 12:48:52 +08:00
    可参见这一篇 《如何让 Ghost 一直运行》 http://solodu.com/how-to-keep-ghost-running/ 介绍了forever pm2 和Upstart
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1861 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:19 · PVG 00:19 · LAX 08:19 · JFK 11:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.