Linux让程序后台运行命令之screen与nohup

来源:岁月联盟 编辑:exp 时间:2011-10-30

 

很多朋友可能在实际的linux服务器管理工作中,经常会为一些长时间运行的任务而头疼,当有事离开我们关掉了连接终端断开SSH后,刚才运行着的程序也自动被中断。下面就介绍下如何让我们的程序在断开SSH后继续在后行运行的方法。

一、使用nohup让程序在后台继续运行

常用命令:nohup ./home/nginx.sh &

* 如果运行成功刚默认会将标准输出重定向到当前目录的nohup.out文件中,查看此文件,可以了解运行的进度;

 

二、使用screen让程序在后台执行

screen是一个可以在多个进程之间多路利用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。

1、安装screen

yum install screen

2、创建screen会话

screen -S wordname

3、暂时离开,保留screen会话中的任务或程序

当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d)

4、恢复screen会话

当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。

如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表;

 

[root@LF ~]# screen -ls

There are screens on:

         12738.wordname    (Detached)

         12839.hte1           (Detached)

2 Sockets in /var/run/screen/S-root

 

12738.wordname即为即才screen创建的会话,恢复回话:screen -r 12738

5、关闭screen会话

执行:exit

6、远程演示

首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。

7、常用的快捷键

Ctrl + a c 在当前screen会话中创建窗口

Ctrl + a w 窗口列表

Ctrl + a n 下一个窗口

Ctrl + a p 上一个窗口

Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换

 

摘取于:http://www.vpser.net/manage/screen.html