服务器后台运行,客户端关闭,服务器不停止

1、安装screen
  sudo apt-get install screen

2、创建虚拟终端 q
  screen -S q
  screen -S q1
  screen -S q2

3、查看已经创建的虚拟终端
  screen -ls

4、进入某个虚拟终端
  screen  -r   q

5、在终端执行所有的操作均可
  执行完操作后就不用管这个终端了,即使你的moba客户端关闭,服务器还在运行
  ctrl + A +D 就会退出当前的虚拟终端窗口,但是终端任务不会停止。

6、杀掉这个终端
  输入 exit, 退出后,在screnn -ls中也查不到了

7、记录日志
  方法一:
    启动时添加选项-L(Turn on output logging.) 会在当前目录下生成screenlog.0文件
      screen -L -dmS test: 启动一个开始就处于断开模式的会话,会话的名称是test。
      screen -r test:         连接该会话,在会话中的所有屏幕输出都会记录到screenlog.0文件
  方法二:
    在虚拟终端界面, 按快捷键ctrl + a ,然后再输入H, 就会在当前路径下生成一个screenlog.0的文件。开始记录
    再次同样操作,就会停止记录
  方法三:

    上面两个方法有个缺点:当创建多个screen会话的时候,每个会话都会记录日志到screenlog.0文件。screenlog.0中的内容就比较混乱了。

    解决方法如下,让每个screen会话窗口有单独的日志文件。

    在screen配置文件/etc/screenrc最后添加下面一行:

      logfile /tmp/screenlog_%t.log

    %t是指window窗口的名称,对应screen的-t参数。所以我们启动screen的时候要指定窗口的名称,例如:

          

    screen -L -t window1 -dmS test的意思是启动test会话,test会话的窗口名称为window1。屏幕日志记录在/tmp/screenlog_window1.log。如果启动的时候不加-L参数,在screen session下按ctrl+a H,日志也会记录在/tmp/screenlog_window1.log。

    注意,如果写成:logfile ./screenlog_%t.log 则是把日志文件记录到当前目录下。

      例子:

        screen -L -t name -S name ./name

        第一个name是记录日志的名字,第二个name是screen -ls 列表展示出来的名字,第三个name是需要运行的程序。

8、多个屏幕记录
  参考https://zhuanlan.zhihu.com/p/107802400

 

posted @ 2020-07-08 11:27  yunshangyue  阅读(851)  评论(0编辑  收藏  举报