【发布时间】:2018-07-29 20:42:48
【问题描述】:
使用 ssh 在 linux 服务器上启动 nodejs 应用程序(如果我关闭 ssh 连接,应用程序停止了,为什么?) 1-创建 nodejs 应用程序-它的 oke 2-在 linux 服务器上运行 -its oke(我停止了 apache 服务器) 但是如果我关闭 ssh 连接(使用我的 windows 电脑),应用程序停止了。我该如何解决这个问题?
【问题讨论】:
使用 ssh 在 linux 服务器上启动 nodejs 应用程序(如果我关闭 ssh 连接,应用程序停止了,为什么?) 1-创建 nodejs 应用程序-它的 oke 2-在 linux 服务器上运行 -its oke(我停止了 apache 服务器) 但是如果我关闭 ssh 连接(使用我的 windows 电脑),应用程序停止了。我该如何解决这个问题?
【问题讨论】:
最正确的做法是为它编写一个服务文件,以便您拥有的任何 init 系统(可能是 systemd)都将保持它运行并为您管理启动/停止/重启的东西。
如果失败(我不怪你...),您可以在 screen 实用程序中运行它。使用screen -d -m /path/to/start/script 启动它,然后您可以稍后返回并使用screen -r 或screen -r <pid of the screen session> 重新连接。
请注意,以这种方式启动它不会重新启动它,等等。为此,您可以执行类似
的操作#!/bin/sh
while true
do
sleep 3s
/path/to/start/script
done
然后用 screen 命令调用它。
【讨论】:
screen 会做到的。我用screen 完成了它。我可能不喜欢 node/etc 但这并不意味着我没有在其中做任何工作......
使用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 &
【讨论】: