通过SSH在生命周期中运行远程服务器中的任务?
两个相关问题:
-
如果我进入远程服务器并在前台启动一个长时间运行的任务(
:~$ ./my-task > out.log
),当我与服务器的连接结束时,进程是否会继续运行? -
问题#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
切换会话。
希望有助于作为首发。