tmux重新启动后远程执行代码

迈克尔·SB

我已经阅读了有关tmux-resurrect,但是我仍然不清楚我是否可以执行以下操作:

  1. 开始tmux会议
  2. ssh 到远程服务器
  3. 在远程主机上启动长时间运行的代码
  4. 杀死tmux服务器(例如,重启本地计算机)
  5. 恢复并重新连接tmux会话(例如,使用tmux-resurrect
  6. 继续监视我在远程服务器上启动的代码

我需要nohup在第3步中使用吗?tmux-resurrect(或其他一些工具)可以照顾它吗?

卡米尔·马乔洛夫斯基(Kamil Maciorowski)

由于服务器“看到”的内容,因此没有本地工具可以执行此操作:

  • 如果您正常断开SSH连接,服务器将立即注意到这一点;
  • 如果您只是消失(例如通过硬重置),则该连接将在服务器端保持打开状态,直到发生某种超时(比较ClientAlive*选项,TCP keepalive概念–有关更多详细信息,请参见此答案)。

即使您打算tmux-resurrect在本地使用或其他工具,服务器也不知道,也不在乎。除非您使用nohup或更优,否则它将终止您长期运行的代码

如果可以,请在服务器上使用tmux(或screen

  1. 不要tmux在客户端上输入会话。
  2. ssh 到服务器。
  3. tmux在服务器上启动会话。
  4. 在此处启动长时间运行的代码。
  5. 无论如何都要断开连接:无论是否与遥控器断开连接,请优雅地与否断开连接tmux
  6. ssh 再次。
  7. 您的tmux会话仍然存在(除非在此期间服务器发生了任何问题);重新依附tmux a

tmux每天都使用这种方式,我认为这是正确的方式。在笔记本电脑上,tmux会议最多持续几个小时,我每晚都将其关闭;但是我可以访问几个服务器,这些服务器在我的tmux会话中运行了几个月。当我写这篇文章时,其中一个上的watch df -h过程实际上是在tmux两个月前开始的一个会话中运行了一周的时间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

重新启动后还原tmux会话

监听重新启动并在关闭之前执行代码

使用ssh命令执行重新启动后关闭连接

重新启动后,Node.js执行冻结

执行“ sudo重新启动”后,“连接超时”

IDE重新启动后如何保存代码折叠?

让代码在无效输入后重新启动 (Java)

终止并重新启动后,tmux自动重新连接到会话

更新后重新启动

远程重新启动Windows 10 PC

从远程主站重新启动Git

重新启动后,broadcastreceiver无法启动

重新启动后LIRC无法启动

每次来宾重新启动后无用执行脚本或命令(无用启动)

远程服务器重新启动后获取rsyslog转发消息

服务器重新启动后,无法从Windows 7计算机远程连接

播放:代码更改后重新启动需要很长时间才能关闭并启动Hikary Pool

重新启动后会执行“ at”命令吗?

在执行“重新启动”之前询问?

Delphi:如果用户重新启动/关闭,Application.Run之后的代码将不会执行

如何在执行后自动重新启动可运行列表,在 Java 中

连续执行30分钟后如何防止Hangfire定期性工作重新启动

Parfor 循环在执行第一组迭代后重新启动

重新启动计算机后如何继续执行脚本?

厌倦了在每次重新启动后创建/ run / postgresql并设置读取和执行写入的操作

Android Java AsyncTask 在活动重新启动后执行两次

重新启动后,Gearman是否会以完全相同的顺序执行作业?

在多个服务器上循环执行命令后重新启动服务

Ansible代码重新启动Apache