通过SSH在生命周期中运行远程服务器中的任务?

两个相关问题:

  1. 如果我进入远程服务器并在前台启动一个长时间运行的任务( :~$ ./my-task > out.log ),当我与服务器的连接结束时,进程是否会继续运行?

  2. 问题#1中相同的长时间运行任务大约需要5分钟才能运行。 如果我打开另一个终端窗口并使用发送输出的文件( tail -f out.log | grep 'Loop count' ),这会影响my-task完成所需的时间吗?

当您终止与服务器的连接时,任务将结束。 我用Tmux这种东西。

您可以以正常方式安装它。

 sudo apt-get install tmux 

这个想法是你ssh到你的服务器,然后从你的shell启动tmux并连接到tmux虚拟控制台。 从tmux虚拟控制台中启动你的东西,从中分离然后终止你与服务器的连接。

tmux虚拟控制台将继续运行,因此所有内容都将在该控件内运行。 您可以随意连接到服务器并从tmux控制台连接/分离。

Tmux有一个不错的手册页,但这里有几把钥匙可以帮助你。

tmux ls列出运行tmux会话。

tmux attach -t 0附加到0。

ctrl-B c创建一个终端。

crtl-B d分离一个termianl。

ctrl-B "垂直分割终端。

ctrl-B %水平分割终端。

arrows导航窗格。

0-9选择窗口。

s切换会话。

希望有助于作为首发。