【问题标题】:Start node app through ssh, stays running?通过 ssh 启动节点应用程序,保持运行?
【发布时间】:2026-02-14 01:10:01
【问题描述】:

我有一个运行节点服务器的树莓派 PI。要启动和控制运行服务器的终端,我使用桌面远程远程控制树莓派。现在这种方法真的很慢所以我想知道,因为如果我不能使用 ssh 连接到我的树莓派,我只需要一个命令行。

我现在的问题是,如果我这样做,我可以导航到我的节点文件夹,运行我的节点文件然后关闭 ssh 连接吗?我的节点服务器会继续运行吗?如果是,我将如何在关闭连接后通过节点会话访问终端?

【问题讨论】:

    标签: node.js ssh


    【解决方案1】:

    最简单的方法是:

    nohup node myapp.js &
    

    这将使应用程序在后台运行,nohup 防止它在连接关闭时停止。

    这是一种既便宜又快捷的方法。更合适的方式可能是以下之一:

    • 使用 docker 之类的工具来管理正在运行的应用程序。
    • 使用类似 supervisord 的东西来做同样的事情。
    • 为 initd 编写脚本并将其转变为真正的“服务”。
    • 将节点应用程序更改为 fork & deamonize 自身。

    【讨论】:

    • 感谢您的快速响应,在 nohup 的情况下,如果我重新建立连接,有没有办法让我从远程终端再次关闭服务器?
    • 嗯是的,我遇到的最后一个问题是,当我关闭终端时,进程仍然被杀死,有没有办法解决这个问题?
    • 是的,我的 Mac 终端会在我关闭终端时询问我是否要终止,只有当我的终端上有一个进程在运行时才会这样做。
    • 你确定它会杀死进程吗?
    • 是的,我可以使用树莓派的 IP 访问它托管的网站。终端打开时可以访问网站,关闭终端后就无法访问网站了。