如何让我的服务器在不维护 ssh 连接的情况下继续工作?

Jas*_*ese 1 server ssh webserver erlang

我通过 ssh 连接到我的服务器,该服务器上安装了 erlang 和 cowboy 以运行我的网页。

ssh root@my.ip.adress
Run Code Online (Sandbox Code Playgroud)

然后我通过做来启动我的网络应用程序;

./_rel/web_server_example/bin/web_server_example console
Run Code Online (Sandbox Code Playgroud)

这让我在最后一行包含;

(web_server_example@127.0.0.1)1> 
Run Code Online (Sandbox Code Playgroud)

erlang 提示。现在我需要服务器和连接到它的家用电脑,因为如果我关闭终端,它会停止服务器上的 erlang 程序。如何保持程序运行并关闭我的家用电脑?

sмu*_*urf 6

您有(至少)2 个选项:

1) 使用nohup。命令:

nohup ./_rel/web_server_example/bin/web_server_example console &
Run Code Online (Sandbox Code Playgroud)

然后你可以退出你的 ssh 会话。您的进程的输出将被重定向到文件 nohup.out

2)使用GNU屏幕。您可能需要先安装它:apt-get install screen. 然后:

screen bash
./_rel/web_server_example/bin/web_server_example console
<Ctrl-A> D
Run Code Online (Sandbox Code Playgroud)

在这个阶段,您将有一个在后台运行的屏幕会话。您可以退出 ssh 会话。屏幕处事方式的美妙之处在于您可以稍后重新附加。登录到该服务器并输入命令screen -r。你将回到你的web_server_example命令,你可以做一些事情,比如按下来打断它或以其他方式与它交互。