![终止 ssh 后服务如何工作?](https://linux22.com/image/886844/%E7%BB%88%E6%AD%A2%20ssh%20%E5%90%8E%E6%9C%8D%E5%8A%A1%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
我得到了这个 amazon ec2 服务器,运行一个 ubuntu 14.04 amd64 服务器,它应该是一个 Shadowsocks VPN 服务器,我在其上部署了一个基于 Go 的 Shadowsocks 服务器。
因为服务器是一个基于 GO 的程序,所以我必须设置那些环境变量,export GOPATH=$HOME/go export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
似乎那些变量的设置只在 SSH 会话中持续,一旦我终止这个 ssh 连接并重新打开一个新连接,所有设置都会消失。
让我困惑的是,在所有设置都消失之后,我甚至无法在不设置所有 GO 参数的情况下启动新服务器,但我仍然可以连接到我之前启动的服务器,它仍在工作。我检查了进程,我认为它不在那里。
这是怎么回事?谢谢
答案1
导出命令在当前正在运行的 shell 或 ssh 会话中设置环境变量。
如果每次都需要这些设置,请将命令添加到 bash 启动文件中。这是主目录中的 .bashrc。
需要注意的是,如果您通过 ssh 登录并启动一个进程,它将在您注销时终止,要保持它运行,您可以通过 screen 或 nohup 运行它,这将使它与 ssh 会话分离,因此会话结束时它不会被终止。理想情况下,您应该通过 systemctl 或 init 脚本启动此服务,然后系统将确保其运行并妥善处理日志。