一、nohup
一般的linux 系统都会默认安装,如果没有的话可以通过安装coreutils包来得到nohup命令
命令格式:nohup Command [ Arg ... ] [ & ]
相信大家应该经常用吧,会把命令输出放到nohup.out 这个文件里面,即使ssh窗口断掉了也不会受到影响,可以通过查看nohup.out 文件来查看执行状态。
缺点:无法用于文本编辑等需要人机交互情况
二、计划任务(cron)
系统默认安装,默认启动
这个我就不用再多说什么了,针对很多情况都可以用他,但是用起来比较nohup稍微麻烦一些,不过两者也可以结合来做,比如编辑计划任务的时候命令或者脚本前面加个 nohup也可以
缺点:仍然无法用于文本编辑等需要人机交互的情况
三、screen
这个几乎就是目前比较全面的解决方案了,主页http://www.gnu.org/s/screen/
关于screen的简短介绍(Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.)
下面是下载地址:
http://mirrors.163.com/centos/6.0/os/x86_64/Packages/screen-4.0.3-15.el6.x86_64.rpm (红帽系列的64位服务器可以参考这个)
http://ftp.gnu.org/gnu/screen/ (源码包下载地址)
这个算是我用的最多的一种方法了,我在大多数情况下只需要 screen 后面跟命令就可以了,如果遇到各种断的情况时候 重新连接后 输入 screen -ls可以看到我之前的连接
如:
之前我在一个服务器打开了三个窗口,同时screen vim config.h ,执行脚本,查找文件
第一个窗口
[root@test ~/nrpe-2.12/include]
# screen vim config.h
然后强制关闭这个窗口
重新连接这台服务器
执行下面操作
[root@test ~]
# screen -ls
There are screens on:
2872.pts-3.test (Attached)
2523.aaa (Detached)
2858.pts-5.test (Attached)
3 Sockets in /var/run/screen/S-root.
上面可以看到我有三个连接,(aaa 是我用screen -dmS 来新建的一个session) 如果想恢复的话 使用 screen -r 2872 就可以了,
执行后回到了我刚才编辑的config.h
screen的功能很强大,如果大家想进一步了解他的话可以去这个地址看一下,http://www.ibm.com/developerworks/cn/linux/l-cn-screen/ ,田强老师写的很详细 我就不多说了。这个写的更深入一些:http://www.ibm.com/developerworks/cn/aix/library/au-gnu_screen/
本文出自 “story的天空” 博客
本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1716384