Linux关闭终端(关闭SSH等)程序停止解决办法

在 Linux 下,当你关闭终端(例如退出 SSH 会话)后,程序停止的主要原因是 SIGHUP 信号(挂起信号)。默认情况下,当终端关闭时,系统会向当前会话中的所有进程发送 SIGHUP 信号,通知它们终端已断开连接,从而终止这些进程。

如果想在关闭 ssh 连接后,希望程序继续运行,可以使用 nohup,但是如果想要重新连上ssh后,还能查看原来程序的运行状态,nohup就不行了, 这个时候就需要使用screen来实现。

流行的Linux发行版通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载

screen使用命令

1. 启动 Screen 会话

screen

启动一个新的 screen 会话。会进入一个新的终端环境。

2. 启动带名称的会话

screen -S <会话名>

为当前会话命名,方便后续管理。

3. 分离会话(断开连接)

在 screen 会话中按下以下快捷键:

Ctrl + A,然后按 D

这会将当前会话挂起,但不会终止程序。

4. 查看所有会话

screen -ls

5. 恢复会话

恢复断开的会话:

screen -r <会话ID或名称>

例如:

screen -r 12345

或者:

screen -r my_session

6. 关闭会话

在 screen 会话中运行:

exit

7. 删除某个会话:

kill 27267

or

screen -S your_screen_name -X quit

8. 分屏管理

在 screen 会话中,你可以分割窗口:

Ctrl+a+w: 展示当前会话中的所有窗口;
Ctrl+a+c: 创建新窗口;
Ctrl+a+n: 切换至下一个窗口;
Ctrl+a+p: 切换至上一个窗口;
Ctrl+a+num: 切换至编号为num的窗口;
Ctrl+a+k: 杀死当前窗口;

8. 查看快捷键帮助

在 screen 会话中按:

Ctrl + A,然后按 ?

显示所有可用的快捷键。

常见场景:

  • 远程任务不中断
    使用 screen 启动一个长时间运行的任务,即使网络断开,任务也会继续运行,你可以重新连接后恢复会话。

  • 多任务并行
    在同一个 SSH 会话中管理多个任务或窗口,不需要开多个终端。

  • 调试或日志查看
    分屏功能适合同时查看多个日志或运行多个调试进程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值