【问题标题】:How to run app.js deployed on remote server from local bash?如何从本地 bash 运行部署在远程服务器上的 app.js?
【发布时间】:2016-11-11 00:24:14
【问题描述】:

我在 GoDaddy 上部署了我的网络应用程序。我的网络应用程序是用 Node.js 开发的。所以,我需要运行 app.js。我可以从计算机的 bash 命令提示符运行 app.js。但是如果我关闭我的笔记本电脑,那么我就看不到网页,即 app.js 已关闭。如何运行 app.js,这样我就不必担心关闭笔记本电脑了?

【问题讨论】:

  • 你能更好地解释一下你实际部署在哪里吗?你有虚拟服务器吗?你是如何运行你的节点进程的?等等?
  • 你能在你的网络服务器上安装 tmux 吗?我已经将它用于类似的任务。
  • @Paul,感谢您的回复。因此,我使用 WinScp 客户端将 Web 应用程序上传到 GoDaddy 帐户(虽然我不是管理员)。然后,我通过 bash: node app.js 上的命令运行该应用程序。如果我关闭笔记本电脑,app.js 就会关闭(即我在浏览器中看不到页面:如 [link]ipadress:portno/abc.html)。如何启动 app.js 以便我可以关闭我的笔记本电脑,但该应用程序仍将在远程服务器上运行(在我的情况下为 GoDaddy)。我没有虚拟服务器。谢谢。
  • @ppovoski,如果我关闭我的电脑,tmux 会在远程服务器上运行应用程序吗?
  • 是的,它会创建一个存储在服务器上的会话。您可以随时创建命名会话并分离/附加到该会话。如果服务器重新启动,它将破坏会话并终止进程。但是,如果您无法在远程服务器上安装它,那么它不是一个选项。它可能已经安装,或者类似的应用程序称为“屏幕”。在您的 shell 类型中,which tmuxwhich screen 以查看是否已安装。

标签: javascript node.js bash ssh


【解决方案1】:

因此,如果您确实以某种用户的身份登录到服务器,并且在该终端会话中运行 node ./app.js 之类的东西来运行您的应用程序,那么当您的会话关闭时,应用程序也将关闭,因为您以用户身份运行它然后注销(类似于当您点击拼写检查然后关闭计算机电源时 Word 不会继续运行拼写检查的方式)。

您需要做的是将应用程序配置为作为服务运行。执行此操作的具体机制很大程度上取决于您正在运行的服务器类型(Ubuntu、Centos、Windows 等)。

例如,大多数现代 Linux 发行版都带有 systemd,这就是我在它们上的做法。有一个很好的教程here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 2018-03-14
    • 2023-03-22
    • 2012-09-09
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多