我有一台运行 CentOs 7.7 的机器。我正在尝试远程访问终端并执行脚本。现在我使用 putty 通过 SSH 连接到服务器,然后键入./run_server.sh
执行我的脚本。文件内容run_server.sh
如下(极其简化):
#!/bin/bash
run_script=(./my_calculator_server)
"${run_script[@]}"
然后它开始执行我的计算器服务器,它可以接受两个数字并输出它们的总和(再次简化)。问题是,如果我关闭 Putty 程序,脚本就会终止,会话也会终止。即使脚本没有终止,我也无法返回到它,因为再次运行 Putty 将打开一个新的终端窗口。我希望能够远程访问该会话,与其交互并随时返回该会话。是否可以?如果是这样,我有什么选择?
我并不是要求分步说明,只是想找到实现此目的的方法。
PS:VNC 不是一个选项。
答案1
问题是该进程是当前 shell 会话的子进程。当 shell 关闭时,所有子进程都会终止。您需要从当前 shell 中取消该进程:
我知道这三个选项:
disown
:
运行命令,然后按CTRL+Z暂停当前进程,运行bg
以使其在后台继续运行,然后运行disown
。
nohup
如果您需要一种简单的方法来记录输出,请使用:
nohup your_command &
在默认命名的文件中查找命令的输出nohoup.out
。
如果需要重新连接到进程,请使用screen
或会话。tmux
类似问题: