使用screen实现本地关闭仍然能远程运行代码

离线跑代码

简单介绍

screen 是一个终端多路复用器,允许你在单个终端会话中运行多个终端会话,并在不同会话之间切换。使用 screen,即使关闭终端或发生断线,程序仍可以继续运行。

连接远程服务器后:

创建新会话

创建命名会话
screen -S <session_name>

例如,创建一个名为 test 的新会话:

screen -S test
创建未命名会话
screen

这将创建一个未命名的新会话。

分离会话

screen 会话中,你可以按 Ctrl-a 然后按 d 来分离(detach)会话。分离会话后,程序继续运行,但你返回到了原来的终端。

重新连接会话

列出所有会话
screen -ls

显示当前所有的 screen 会话。例如:

There are screens on:
    12345.test    (Detached)
    67890.pts-0.hostname    (Attached)
2 Sockets in /var/run/screen/S-username.
重新连接指定会话
screen -r <session_name>

screen -r <pid>

例如,重新连接名为 test 的会话:

screen -r test

或根据 PID 重新连接:

screen -r 12345
强制重新连接会话

如果会话已经附加到其他终端,可以使用 -d-r 强制重新连接:

screen -d -r <session_name>

screen -d -r <pid>

关闭会话

要关闭 screen 会话,可以在会话中按 Ctrl-d 或输入 exit 命令。

在会话中使用 screen 命令

进入 screen 会话后,可以使用以下快捷键:

  • 创建新窗口Ctrl-a 然后 c
  • 切换到下一个窗口Ctrl-a 然后 n
  • 切换到上一个窗口Ctrl-a 然后 p
  • 列出所有窗口Ctrl-a 然后 " (双引号)
  • 命名当前窗口Ctrl-a 然后 A
  • 强制重新连接Ctrl-a 然后 r
  • 分离会话Ctrl-a 然后 d
  • 关闭当前窗口Ctrl-a 然后 k

示例流程

  1. 创建一个新会话
screen -S test
  1. 在会话中运行一个长时间运行的命令
python long_running_script.py
  1. 分离会话

Ctrl-a 然后 d

  1. 重新连接会话

列出所有会话:

screen -ls

重新连接会话:

screen -r test
  1. 关闭会话

在会话中按 Ctrl-d 或输入 exit

通过使用 screen,你可以更好地管理和控制终端会话,尤其是在需要长时间运行命令或保持会话活动的情况下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值