新建后台运行的命令行窗口

摘自 https://blog.csdn.net/runningwei/article/details/79112539

可以简单的认为用这个命令你可以为不同的任务开不同的窗口,这个窗口之间是可以切换的,同时,窗口和你的会话连接基本上没有任何区别,这样你可以在开一个连接的时候同时干多件事情,并且在终端看得到运行过程的同时而不会由于断网而导致代码停止运行。其常用命令如下:

创建一个窗口,并且为这个窗口命名

  1. screen -S name #创建一个窗口,并且为这个窗口命名
  2. $screen -S yolo

当你执行完以上命令后,就会自动跳入名为yolo的窗口,在这个窗口里可以干你想干的事情。
当你不想呆在这个窗口时,你可以通过快捷键Ctrl+a+D断开这个窗口的连接而回到连接会话界面。即显示如下

  1. [detached from 28113.yolo]
  2. user@ubuntu-Super-Server:~/code$

说明从yolo这个窗口断开回到了会话界面。但是这个断开只是不显示那个窗口,而窗口对应的任务是在后台运行的。

  1. $screen -ls #可以查看已创建的所有窗口

执行上述指令后,出现如下结果,说明创建了两个窗口,可以看到窗口的名字和id,Detached说明窗口是断开的,再次强调这里的断开是指没有让他显示,其对应的任务是在后台执行的。

  1. user@ubuntu-Super-Server:~/code$ screen -ls
  2. There are screens on:
  3. 28475.ssd (20171127 200741秒) (Detached)
  4. 28113.yolo (20171127 195726秒) (Detached)

ps -ef 全局进程

如果想看其中一个窗口任务的执行状态,可以通过如下指令:

  1. $screen -r yolo #重新连接到yolo窗口,显示其运行过程

如果想直接停止某个窗口任务的运行,可以直接通过杀死id的方式

  1. $kill 28475 #终止ssd窗口对应任务的运行,同时杀死该窗口

执行完以上指令再看存在的窗口时后会发现只剩名为yolo的窗口了

  1. user@ubuntu-Super-Server:~/code$ screen -ls
  2. There is a screen on:
  3. 28113.yolo (20171127 195726秒) (Detached)

总结一下,screen可以实现代码在后台运行时的可视化,同时,能在开一个会话连接时创建多个窗口处理不同的任务。用起来也很方便。