2024年10月

简介
  我们经常使用ssh或telnet远程登陆到Linux服务器,而执行一些长时间任务如ftp传输,深度学习等任务时常常使我们感到头疼,因为我们不能关闭远程会话,否则进程会强制终止。screen可以很方便地处理这种情况,让我们可以放心地断开连接而让Linux服务器继续执行任务。下面介绍Linux非root用户如何安装配置screen。

安装screen
  root用户可以直接用yum install screen命令安装screen,但对于非root用户或无网络连接的情况,我们需要使用源码来安装screen。screen下载地址在这里,可选择最新版的下载。
  这里我选择最新版的screen-4.6.2.tar.gz下载,使用tar -zxvf screen-4.6.2.tar.gz -C screen-4.6.2解压到screen-4.6.2目录,目录下的INSTALL文件有安装教程。在该目录下,运行./configure --prefix=/home/username/screen_dir,其中--prefix后面是screen安装目录。执行该指令时,可能会出现如下错误:

configure: error: !!! no tgetent - no screen

这是没有安装ncurses依赖包的缘故,这时就需要先下载安装ncurses,其源码下载地址在这里。同样选择最新版的ncurses-6.1.tar.gz下载,下载后用tar指令解压,解压后用如下指令进行安装:

./configure --prefix=/home/username/ncurses_dir
make
make install
如果第一条命令运行后有Error,可用如下命令尝试替换:
./configure --prefix=/home/username/ncurses_dir --with-shared --without-debug --without-ada --enable-overwrite

这里安装到ncurses_dir,目录下有bin,include,lib,share目录,依赖包在lib目录下。接着切换到screen解压目录,执行如下指令:

export LDFLAGS=’-L/home/username/ncurses_dir/lib’
export CPPFLAGS=’-I/home/username/ncurses_dir/include’
./configure --prefix=’/home/username/screen_dir’
make
make install

这样就能将screen安装到screen_dir目录下了。接着在.bashrc文件里设置screen执行路径,加入export PATH=/home/username/screen_dir/bin:$PATH,接着执行source .bashrc更新PATH,在终端输入screen就能进入screen界面了。

screen使用相关
  screen用户手册可以查阅1或者2。