0%

CentOS-后台运行程序或脚本

参考链接:

Screen 官方站点:http://www.gnu.org/software/screen/

Screen 官方使用手册:http://www.gnu.org/software/screen/manual/screen.html

使用方法:

使用SSH登录远程服务器时,如果终端由于各种原因与服务器断开连接,那么当前运行的程序都会终止;为了避免这种情况,在CentOS(其余Linux发行版类似)中有多种方法让程序在后台一直运行。

1. nohup命令

nohup 命令会忽略所有挂断(SIGHUP)信号,可以在退出帐户/关闭终端之后继续运行相应的进程。 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。 使用方法:

  • 输入命令 nohup 正常命令 & ,然后回车使命令生效,同时会输出该命令的pid值;
  • 输入 exit 命令退出终端,此时命令即可在后台运行。

2. screen命令

Screen是一款用于命令行终端切换软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。 Screen中所有的会话都独立地运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以在不同窗口间切换,并可以自由地重定向各个窗口的输入和输出。

安装方法:
  • 在线安装:
    1
    2
    yum install epel-release
    yum install screen
  • 离线安装:按需下载RPM软件包(链接),输入命令 rpm -ivh x.rpm 即可完成安装
常用命令:
  • 创建一个名字为name的会话并自动切换到改会话:
    1
    screen -S name
  • 切换到名为name的会话:
    1
    screen -r name
  • 查看当前所有screen会话:
    1
    screen -ls
  • 如果切换到screen时提示会话Attached,可以尝试detach会话:
    1
    screen -d name