Linux 关闭窗口,后台运行服务---screen的使用

在linux部署服务时候,用远程连接,有时候启动完毕,然后关闭会话,服务也就关闭了,那么有没有办法让这些服务后台运行,并且关闭窗口不影响呢?我的办法是使用Screen

介绍

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能

实际中的使用

下载安装screen: yum install screen

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

Ctrl-a ? -> 显示所有键绑定信息
Ctrl-a c -> 创建一个新的运行shell的窗口并切换到该窗口
Ctrl-a n -> Next,切换到下一个 window 
Ctrl-a p -> Previous,切换到前一个 window 
Ctrl-a 0..9 -> 切换到第 0..9 个 window
Ctrl+a [Space] -> 由视窗0循序切换到视窗9
Ctrl-a C-a -> 在两个最近使用的 window 间切换 
Ctrl-a x -> 锁住当前的 window,需用用户密码解锁
Ctrl-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 [logout](http://man.linuxde.net/logout "logout命令") 也不影响。 
Ctrl-a z -> 把当前session放到后台执行,用 shell 的 [fg](http://man.linuxde.net/fg "fg命令") 命令则可回去。
Ctrl-a [w](http://man.linuxde.net/w "w命令") -> 显示所有窗口列表
Ctrl-a t -> [time](http://man.linuxde.net/time "time命令"),显示当前时间,和系统的 load 
Ctrl-a k -> [kill](http://man.linuxde.net/kill "kill命令") window,强行关闭当前的 window

我一般都会使用screen -S yourname这个居多创建一个叫做yourname的一个screen,然后一个screen里面可以有很多窗口,运行很多服务。
比如我有四个服务,想分开四个screen来运行,每次创建一个screen,然后在里面启动好服务,然后使用按键Ctrl-a d ,退回初始界面继续创建下一个screen,创建启动服务完毕就ok了。即使关闭窗口也不影响服务的使用

更多用法 Screen

你可能感兴趣的:(Linux 关闭窗口,后台运行服务---screen的使用)