如何在关闭ssh连接的情况下,让程序继续运行?
对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!
文章标签: SSH
上一篇 : 自如生活,如我所是 下一篇 : 使用 Python 和 sendmail 服务给用户发送邮件