Linux无法同时监视多个应用?用screen轻松解决

前言

前几天将项目部署到服务器时,遇到这么个需求:需要在屏幕上显示项目运行情况,同时要实时查看内存等资源的使用情况,还要查看实时的网络情况。

在此之前,上述程序都是在后台运行,当需要查看时才会调出来查看,一来一去怪麻烦的,后面找了一款工具,完美解决这个问题---------screen

screen的作用

screen最简单直接的作用就是可以像Windows一样同时打开并监视多个终端窗口,同时方便管理各个窗口。

使用screen前:

使用screen后:

如何使用screen

  • 通常,screen已经预装在大多数Linux发行版中。以下是CentOS 系统中源码安装操作命令(当然也可以使用别的方式下载):
bash 复制代码
wget https://ftp.gnu.org/gnu/screen/screen-4.8.0.tar.gz
mkdir build && cd build 
../configure
make 
make install
  • screen的创建和查看
arduino 复制代码
screen             //创建一个screen
screen -S yourname //创建一个名称为yourname的screen
screen -ls         //查看所有screen
screen -x          //进入一个最近打开的状态为attached的screen(关于状态下文会有相关解析)
screen -x yourname //进入名称为yourname,状态为attached的screen
screen -r          //进入一个最近打开的状态为detached的screen
screen -r yourname //进入名称为yourname,状态为detached的screen
screen -d          //将最近一个状态为attached的screen状态更改为detached
screen -d yourname //将名称为yourname,状态为detached的screen状态更改为detached
  • screen 的状态

Attached:前台运行,通俗来说就是可以在屏幕上看到

Detached:后台运行,可以理解为Windows里的最小化,程序并没有停止运行

  • 进入screen后的常用命令

刚进入screen中会进入命令模式,命令模式中的命令都是以Ctrl + a(同时按下)开头,以下简记为C-a

css 复制代码
C-a ?	//显示所有键绑定信息

C-a c	//创建一个新的运行shell的虚拟终端窗口并切换到该虚拟终端窗口
C-a n	//切换到下一个虚拟终端窗口
C-a p	//切换到前一个虚拟终端窗口(与C-a n相对)
C-a C-a	//切换到之前显示的虚拟终端窗口
C-a 0..9  //切换到虚拟终端窗口(0..9)
C-a w	//显示所有虚拟终端窗口列表

C-a S     //水平分屏
C-a |     //垂直分屏
C-a tab   //切换分屏

C-a k	//杀掉当前虚拟终端窗口
C-a a	//发送 C-a到当前虚拟终端窗口
C-a [	//进入拷贝/回滚模式
  • screen的退出和关闭
c 复制代码
C-a d	//暂时断开screen会话(会将该screen状态变成detached)
exit    //直接关闭该screen会话

使用中曾遇到的问题

  1. 没有注意到screen会话的状态问题,用了错误的命令进入screen会话
  2. Ctrl + a需要同时按下,分开按没有效果

结语

若是觉得以上这些常用命令仍不能解决问题,可以到官网查看相关文档:https://www.gnu.org/software/screen/manual/

以上便是我在使用中总结出来的一点经验,大家若有其他想法和疑问可以发到评论区,若是对你有帮助,麻烦点个赞吧!

相关推荐
陈陈CHENCHEN13 分钟前
【Linux】服务器根目录磁盘扩容操作记录
linux·运维·服务器
GeW1 小时前
RHCE快速拿证全攻略:考点拆解+实验强化+时间规划,一次通关
linux
码农小韩2 小时前
Linux应用开发(八)——TCP/IP网络编程基础
linux·嵌入式软件开发·linux操作系统·嵌入式操作系统·linux网络编程·linux应用
迷途之人不知返2 小时前
【进程】-5-进程优先级
linux
fengyehongWorld3 小时前
Linux squid搭建基础代理服务器
linux·运维·服务器
木白CPP3 小时前
Linux DMA驱动详解(二)-----DMA的使用者
java·linux·运维
赵民勇3 小时前
systemd-socket-activate命令详解
linux·运维
Cx330❀4 小时前
【Linux网络】网络层 IP 协议:从网段划分到内核源码解析
大数据·linux·服务器·网络·tcp/ip·性能优化·langchain
企鹅的蚂蚁4 小时前
LubanCat RK3588 实时 Linux 开发(七):YT6801 PCIe 网卡驱动移植与 vermagic 排查
linux·rk3588·linux驱动·yt6801·pcie网卡·vermagic
DYWorker0014 小时前
Linux驱动子系统:DMA子系统 —— Consumer和Provider(006)
linux·驱动开发