title: 断电不断网——Linux的screen
date: 2015-01-01 20:20:23
categories: [Linux]
tags: [linux,screen,session]
在使用AWS亚马逊云搭建Gmail转发服务(二)中,我们最后运行了邮件转发程序。本以为程序就可以正常工作了,于是我关闭了Putty窗口。几个小时后回来,发现程序早就终止运行了。
原来,在一般情况下,当一个session结束时,这个session里面运行的进程也会同时结束。这可不能达到我们要的效果。于是screen命令登场了。
使用screen命令,可以让程序在断开session的时候继续运行。要打开screen,只需要在终端输入screen这个命令即可。请看下面演示:
cd wwwproject/ghelper
screen
python gmail_helper.py
这样就在一个screen里面运行了邮件转发程序。那么如何退出呢?
键盘上Ctrl+A+D三个键一起按。这样就返回到了进入screen之前的终端界面。而邮件转发程序仍然在后台默默的运行。现在可以关闭putty,然后放心的去睡觉了。
那重新SSH登录服务器以后,想关闭这个邮件转发程序怎么办?
两个方法:
方法一,直接结束Python进程。
方法二,在终端窗口输入:
screen -ls
终端窗口返回:
ubuntu@ip-172-31-15-35:~$ screen -ls
There is a screen on:
7956.pts-0.ip-172-31-15-35 (01/01/2015 12:16:10 PM) (Detached)
1 Socket in /var/run/screen/S-ubuntu.
注意这里的7956就是pid,于是输入:
screen -r 7956
就能回到Python的运行窗口了。于是,Ctrl+C结束程序运行。
有了screen命令,再也不怕关闭session后程序结束运行了。