以下所有的session-name均可替换成session-id
session-name为你自定义的名字,session-id为系统分配(貌似是pid)
screen -S session-name 创建新session并以session-name命名
screen -r session-name 进入指定名称的session
screen -R session-name 进入指定名称的session 若session不存在则新建session
ctrl +a+d 脱离当前session,将该session状态修改为detached
screen -S session-name -X quit 删除指定名称的session
screen -ls 查看所有session的id,名称,以及状态
在当前session(attached)状态下输出exit即可返回主屏幕并删除当前session
kill -9 session-id 可以将session状态变为dead
screen -wipe 可以将dead状态的session删除并显示所有session
screen -d session-name 将指定名称的session会话的状态修改为detached
快速理解方法
screen -S demo1 命令会创建session demo1 并进入demo1,这时session -ls 查看session列表就会发现,demo1状态为attached,按ctrl+d+a脱离当前session,然后screen -ls查看session,就会发现demo1的状态变成了detached,再新建一个session demo2并进入,会发现demo2状态的attached,其他的为detached。简而言之,attached状态就是你正在使用的session,detached就是挂在后台正在运行的session(类似于window将窗口最小化,虽然你看不见了,但是它还在运行)。用screen -S -X demo1 quit 则可以将demo1删除(也可以在demo1中执行exit实现删除demo1),再用screen -ls查看session列表就找不到demo1了。
⚠️注意:初学者尽量不要在一个session中进入另一个session,最好是脱离当前session再进入另一个session。在一个session中进入另一个session,会让后者attached前者,形成一种线性结构,即便用ctrl+a+d也无法脱离,此时前者用screen -r命令进入则会直接进入后者的session,而后者无法使用screen -r进入,此时可以对后者使用screen -d 命令,使其脱离前者。当用screen -ls查看发现有多个session都处于attached,又不知道它们之间的关系时,可以多次使用screen -d session-name将它们逐个脱离。这时我初学时的结论,如有不对,敬请指正。