在SSH连接关闭后,让Go脚本在Linux服务器上继续运行。

29 浏览
0 Comments

在SSH连接关闭后,让Go脚本在Linux服务器上继续运行。

我有一个Go脚本,它创建一个HTTP请求并响应任何传入请求。我希望这个脚本在Linux服务器上运行。然而,我不能永远保持ssh连接活动,当它断开连接时,脚本也停止,这是预期的。我知道NodeJS有一个名为'forever'的解决此问题的工具。我想知道是否也有类似于Golang的解决方案,因为我没有找到相关的内容。对于如何解决这个问题的任何其他建议也非常受欢迎。

0
0 Comments

问题出现的原因:当在Linux服务器上通过ssh连接运行Go脚本时,如果直接关闭ssh连接,Go脚本会随之停止运行。

解决方法:

1. 使用nohup命令:nohup用于在后台运行命令,即使关闭了终端连接,命令也会继续运行。在运行Go脚本时,可以使用以下命令:

nohup go run script.go &

2. 使用screen命令:screen是一个终端复用工具,可以创建多个虚拟终端,并在不同的终端之间切换。通过以下步骤,在screen中运行Go脚本:

# 创建一个新的screen会话
screen -S mysession
# 在新的会话中运行Go脚本
go run script.go
# 按下Ctrl + A,然后按下D,即可将screen会话切换到后台

在这种情况下,即使关闭了ssh连接,Go脚本仍然会在后台继续运行。

3. 使用byobu命令:byobu是对screen的升级版本,提供了更多的功能和更友好的界面。使用以下命令,在byobu中运行Go脚本:

# 安装byobu(如果尚未安装)
sudo apt-get install byobu
# 启动byobu
byobu
# 在byobu中运行Go脚本
go run script.go
# 按下Ctrl + A,然后按下D,即可将byobu会话切换到后台

通过使用byobu,Go脚本将在后台持续运行,即使关闭了ssh连接。

以上是在Linux服务器上保持Go脚本在ssh连接关闭后继续运行的三种解决方法。根据个人喜好和需求,可以选择适合自己的方法来解决这个问题。

0