如果 SSH 实例关闭,在 ssh 中运行的 shell 脚本是否可以继续运行?

如果 SSH 实例关闭,在 ssh 中运行的 shell 脚本是否可以继续运行?

我正在尝试编写一个 shell 脚本,在远程服务器上执行冗长的批处理作业。我将通过 SSH 运行该脚本。

问题是,我打算在晚上开始编写脚本,并在第二天早上收集结果;我不想让我的本地计算机整夜运行,因为批处理过程中不需要它。因此,有没有办法可以关闭 SSH 连接并仍然让 shell 脚本继续在远程服务器上运行?

答案1

一种方法是使用 nohup。这是一个例子:

nohup your_prog.sh &

your_prog.sh这将运行在后台调用的程序,&并将所有输出重定向到名为nohup.out.

现在,您可以使用以下命令监视在后台运行的程序的输出:

tail -f nohup.out

使用该命令启动的程序nohup将继续运行,直到被重新启动或显式kill命令终止(或直到​​程序退出)。

答案2

是的,如果你启动脚本在后台运行,它会继续运行。或者,您可以使用命令行上的命令启动脚本。例如,你可以说:

ssh hostname -l loginname command

那会起作用的。

相关内容