title: 斷電不斷網(wǎng)——Linux的screen
date: 2015-01-01 20:20:23
categories: [Linux]
tags: [linux,screen,session]
在使用AWS亞馬遜云搭建Gmail轉(zhuǎn)發(fā)服務(wù)(二)中,我們最后運行了郵件轉(zhuǎn)發(fā)程序。本以為程序就可以正常工作了,于是我關(guān)閉了Putty窗口。幾個小時后回來,發(fā)現(xiàn)程序早就終止運行了。
原來,在一般情況下,當(dāng)一個session結(jié)束時,這個session里面運行的進程也會同時結(jié)束。這可不能達到我們要的效果。于是screen命令登場了。
使用screen命令,可以讓程序在斷開session的時候繼續(xù)運行。要打開screen,只需要在終端輸入screen這個命令即可。請看下面演示:
cd wwwproject/ghelper
screen
python gmail_helper.py
這樣就在一個screen里面運行了郵件轉(zhuǎn)發(fā)程序。那么如何退出呢?
鍵盤上Ctrl+A+D三個鍵一起按。這樣就返回到了進入screen之前的終端界面。而郵件轉(zhuǎn)發(fā)程序仍然在后臺默默的運行。現(xiàn)在可以關(guān)閉putty,然后放心的去睡覺了。
那重新SSH登錄服務(wù)器以后,想關(guān)閉這個郵件轉(zhuǎn)發(fā)程序怎么辦?
兩個方法:
方法一,直接結(jié)束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結(jié)束程序運行。
有了screen命令,再也不怕關(guān)閉session后程序結(jié)束運行了。