【问题标题】:Start nodejs app on linux server with ssh-if i close the ssh connection,app stopped why?)使用 ssh 在 linux 服务器上启动 nodejs 应用程序 - 如果我关闭 ssh 连接,应用程序停止为什么?)
【发布时间】:2018-07-29 20:42:48
【问题描述】:

使用 ssh 在 linux 服务器上启动 nodejs 应用程序(如果我关闭 ssh 连接,应用程序停止了,为什么?) 1-创建 nodejs 应用程序-它的 oke 2-在 linux 服务器上运行 -its oke(我停止了 apache 服务器) 但是如果我关闭 ssh 连接(使用我的 windows 电脑),应用程序停止了。我该如何解决这个问题?

【问题讨论】:

    标签: node.js linux debian


    【解决方案1】:

    最正确的做法是为它编写一个服务文件,以便您拥有的任何 init 系统(可能是 systemd)都将保持它运行并为您管理启动/停止/重启的东西。

    如果失败(我不怪你...),您可以在 screen 实用程序中运行它。使用screen -d -m /path/to/start/script 启动它,然后您可以稍后返回并使用screen -rscreen -r <pid of the screen session> 重新连接。

    请注意,以这种方式启动它不会重新启动它,等等。为此,您可以执行类似

    的操作
    #!/bin/sh
    
    while true
    do
     sleep 3s
     /path/to/start/script
    done
    

    然后用 screen 命令调用它。

    【讨论】:

    • 我找到了一个模块 -forever :D 但请注意npmjs.com/package/forever
    • @seferftsukran 谢谢,但我避免 node/angular/et al like the plague - 不是我的编码方式。但我会带你从裸机到带有 REST api 的美妙的完整后端,以便可以使用 node/angular/et al :)
    • 我尝试使用 nohup node server.js 并再次出现同样的错误;但我相信我们以后可以这样做。(因为 nodejs 是新的)
    • @seferftsukran - screen 会做到的。我用screen 完成了它。我可能不喜欢 node/etc 但这并不意味着我没有在其中做任何工作......
    • ty @ivanivan 我安装了屏幕并完美运行:D(我可以与 nodemon 一起使用)
    【解决方案2】:

    使用nohup 命令启动应用程序。喜欢:

    nohup THE_COMMAND_YOU_DONT_WANT_TO_STOP_WHEN_YOU_LOGOUT &
    

    对于 nodemon,将启动服务器的命令放在一个名为 myserver.sh 的文件中可能会有所帮助:

    nodemon server.js
    

    确保文件是可执行的:

    chmod +x myserver.js
    

    然后运行

    nohup myserver.sh &
    

    【讨论】:

    • 请写一个例子
    • 以这种方式使用 nodemon 存在问题(请参阅 github.com/remy/nodemon/issues/296 )。应该可行的解决方法是将您的命令放入脚本并在该脚本上运行 nohup。由于格式原因,将编辑我的答案
    • 不能解决我的问题:D 这是一般问题,但 ty:D
    猜你喜欢
    • 2022-01-19
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 2013-08-09
    • 1970-01-01
    相关资源
    最近更新 更多