screen命令#伪服务

大家有没有碰上这么一种苦恼,通过ssh去连接某服务器,然后运行了一个长时间的任务不敢断开;或者启动了一个软件,希望它一直运行,可是又不想一直保持ssh连接。

当然了,再此之前你应该也尝试了各种五花八门的骚操作,包括“&”或者nohup等命令,但实际使用这些命令并不稳定,所以在这里也再次整理下screen命令的用法,案例一下。

#安装screen
yum install -y screen

老规矩,我们先来简单看下最新的功能列表:

#options
-4            Resolve hostnames only to IPv4 addresses.
-6            Resolve hostnames only to IPv6 addresses.
-a            Force all capabilities into each window‘s termcap.
-A -[r|R]     Adapt all windows to the new display width & height.
-c file       Read configuration file instead of ‘.screenrc‘.
-d (-r)       Detach the elsewhere running screen (and reattach here).
-dmS name     Start as daemon: Screen session in detached mode.
-D (-r)       Detach and logout remote (and reattach here).
-D -RR        Do whatever is needed to get a screen session.
-e xy         Change command characters.
-f            Flow control on, -fn = off, -fa = auto.
-h lines      Set the size of the scrollback history buffer.
-i            Interrupt output sooner when flow control is on.
-l            Login mode on (update /var/run/utmp), -ln = off.
-ls [match]   or
-list         Do nothing, just list our SockDir [on possible matches].
-L            Turn on output logging.
-m            ignore $STY variable, do create a new screen session.
-O            Choose optimal output rather than exact vt100 emulation.
-p window     Preselect the named window if it exists.
-q            Quiet startup. Exits with non-zero return code if unsuccessful.
-Q            Commands will send the response to the stdout of the querying process.
-r [session]  Reattach to a detached screen process.
-R            Reattach if possible, otherwise start a new session.
-s shell      Shell to execute rather than $SHELL.
-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.
-t title      Set title. (window‘s name).
-T term       Use term as $TERM for windows, rather than "screen".
-U            Tell screen to use UTF-8 encoding.
-v            Print "Screen version 4.01.00devel (GNU) 2-May-06".
-wipe [match] Do nothing, just clean up SockDir [on possible matches].
-x            Attach to a not detached screen. (Multi display mode).
-X            Execute <cmd> as a screen command in the specified session.

接下来进行一下最基础也是最实用的流程操作
screen
打开一个新的screen会话,你可能没觉得有什么变化,但你的当前会话已经属于一个新的screen了。

screen

接下来我们运行一个frp,frp就是一个程序,而非服务,所以我们在每次使用的时候都要去手动开启它。

frps

Ctrl+A+D
Ctrl+A+D连按挂起会话,返回到进入会话前的位置

挂起会话

screen -ls
screen -ls用户查看当前存在的会话详情

查看会话

screen -r ID
screen -r 进入会话,当然-r参数后需要加子界面id号,即上图看到的3061.

进入会话

当然,你如果开的会话太多,怕混乱,可以使用-S参数进行会话命名,一般来讲,简单的这几个命令已经足够日常所需了。
现在我们可以随意断开ssh连接了,但我们的frp小程序却像个服务一样稳定的在服务器上运行着,需要类似功能的程序还有很多,如鸟群的qqbot机器人,再如一些python写的页面小程序,都可以借此稳定常驻进程。

原文地址:https://www.cnblogs.com/rabbitmask/p/10200407.html

时间: 2024-08-29 17:52:00

screen命令#伪服务的相关文章

openstack中利用screen命令重启服务

在openstack的老一点的版本中,通常使用./rejoin-stack.sh重新启动所有指定的服务,在最新的master分支中,并没有rejoin-stack.sh,那么是不是重启服务只能先./unstack.sh,然后再./stack.sh.当然不是了,这样极其浪费时间.事实上,我们可以通过窗口管理器管理每一个已经启动的openstack服务,在使用devstack安装部署openstack后,多个openstack服务进程共享一个物理终端的窗口管理器,这个screen session里包

screen命令的最常见的使用方法

这几天用到了screen命令来在远程主机上后台执行一些命令,主要用到: screen -S yourname -> 新建一个叫yourname的session screen -ls -> 列出当前所有的session screen -r yourname -> 回到yourname这个session C-a d ->快捷键, detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen

linux screen 命令详解

linux screen 命令详解 一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了.必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了. 二.简介 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命

Linux screen命令

screen 相关概念 会话:screen 命令从 linux 终端创建出一组进程来管理多个窗口的操作,这个进程组叫一个会话. 窗口:一个会话中可以创建一个或多个窗口,每一个窗口都相当于一个 ssh 登录,可以执行任何 shell 程序. 断开会话:一个会话可以中断,在想要重新进入时可以再进入进行未完成的工作. screen 常用操作 screen -S name  创建一个新的会话 screen -d name  从外部分离(detach)一个会话 C-a d 从内部暂离当前会话(先按住Ctr

xargs和exec详解、screen命令、curl命令

1.xargs和exec详解xargs execfind /var/log/  -type f  -mtime +10   (超过10天的文件)find /var/log/  -type f  -mtime +10  -exec cp {} {}.bak \; (将找到的文件都复制成.bak文件)find /var/log/  -type f  -mtime +10  |xargs  -i cp {}  {}.1  (复制重命名)ls |xargsls x* ls x*  |xargs rmls

linux screen 命令详解(未验证+研究)

一.背景 系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份.ftp 传输等等.通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了.必须等待它们执行完毕,在此期间不能关掉窗口或者断开连 接,否则这个任务就会被杀掉,一切半途而废了. 二.简介 GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换. GN

利用sc命令创建服务

创建 >sc create TestService binPath= "D:\EngineService\TestService.exe" start= auto[SC] CreateService 成功>net start TestService 注意:binPath= 后面有一个空格 删除 >sc delete TestService 利用sc命令创建服务,布布扣,bubuko.com

C语言 Socket入门示例2——模拟远程CMD(客户端向服务器发送命令,服务端执行该命令)

只要把上一篇文章"C语言 Socket入门示例1"中的两段程序彻底搞懂,那么再看本文就没有任何难度了,因为仅仅是对上篇文章中服务端代码的简单修改扩充.但是简单修改过后,功能变得异常强大,犹如一个远程CMD.随着不断深入学习,功能将会变得越来越强大.欢迎大家评论指点. 1.服务端(Server): #include <stdio.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.lib")

Linux之screen命令详解

一.nohup 工作中经常会遇到这样的需求,通过SecureCRT或其它工具远程到服务器执行某个任务,而这个任务耗时又比较长,你又不得不等待它执行完毕,但是如果此间如果关掉窗口或断开连接又会导致任务被kill掉.之所以会出现这种状况,是在窗口关闭或网络断开时,系统会发送SIGHUP信号给会话控制进程,该进程会转发SIGHUP信号给前台运行进程,该信号的默认动作是终止程序,从而导致任务被kill掉,罪魁祸首就是SIGHUP信号.        如果能够忽略SIGHUP信号,则该问题就迎刃而解了,L