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

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

两个相关问题:

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

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

答案1

当你断开与服务器的连接时,任务将结束。我用它来做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分离一个终端。

ctrl-B "垂直分割端子。

ctrl-B %水平分割端子。

arrows导航窗格。

0-9选择窗口。

s切换会话。

希望这对初学者有帮助。

相关内容