对Unix,Linux类服务器维护经常是通过ssh完成的,而有些操作比较费时,如更新程序、运行维护脚本等。此时如果断开ssh连接的话,程序就会随之被中断。如何保证断开ssh后仍能保持进程的运行呢?

网上的方法有很多种,但是经过一一检验之后发现还是 Screen 最好用。


首先安装 Screen:

# yum install screen


使用 Screen 很简单:

# screen


输入命令回车后进入 Screen 子界面,此时终端标题栏会指示处于子界面状态,然后运行你的程序:

# 应用程序名


就跟平时的终端使用一样,输入指令运行程序即可。例如:

# python /tmp/test.py


程序正常运行后按下 Ctrl+A ,然后再按下 D 键,此时切换回主界面,终端的窗口标题栏也会指示。

此时程序已经在后台运行了,现在你可以进行其他的操作,或者断开 SSH 连接。

(如果同时按下 Ctrl+A+D, 会直接断开 SSH 连接回到本地 bash,此时程序也是在运行的。)


以后 SSH 重新连接后输入:

# screen -ls


查看在运行程序的子界面代号,然后输入:

# screen -r 子界面代号


此时就会切换到该程序运行的子界面,就可以查看程序运行的状态了。


Last login: Thu Oct  3 16:46:45 2019 from 118.88.88.88
[root@VM_188_188_centos ~]# screen -ls
There is a screen on:
13314.pts-0.VM_188_188_centos (Detached)
1 Socket in /var/run/screen/S-root.

[root@VM_188_188_centos ~]# screen -r 1
[detached from 13314.pts-0.VM_188_188_centos] // Ctrl+A 再 +D
[root@VM_188_188_centos ~]#

[root@VM_188_188_centos ~]# screen -r 1
[detached from 13314.pts-0.VM_188_188_centos]
[root@VM_188_188_centos ~]# 登出 // Ctrl+A+D
Connection to 118.88.88.88 closed.
Tesperas-MacBook-Pro:~ tespera$


OK,Enjoy!😘


Tespera

爱看书,爱看电影,偶尔也听听歌。喜欢写如诗的代码,热爱 IT 行业。熟悉 Web 前端开发,了解 C、Python、PHP 等计算机语言。

3 Comments
子非鱼 2019-04-30 23:22

"多年以来,我认识到,当你拥有真正优秀的人才时,你不必对他们太纵容,"乔布斯后来解释说:"你期待他们做出好成绩,你就能让他们做出好成绩。 最初的 Mac 团队让我知道,最顶级的人才喜欢一起工作,而且他们是不能容忍平庸作品的。你到那个 Mac 团队里随便找个人问问,他们会告诉你,那些痛苦都是值得的。"

Post your comment