Screen: Linux会话管理

SSH会话

一般我们通过SSH连接服务器,通常情况下,只能开启一个会话.也就是单线程,如果想要管理多个会话或者在网络掉线之后依然想让服务器继续执行命令,则可以借助screen工具.

安装

在Centos中,使用下面的命令安装screen:

yum -y install screen

fedora31发布
image-2836

常用命令

安装成功之后,可以通过以下命令来进行常用操作.

创建一个会话:

screen -S screenName

命令运行完成之后,就已经进入会话了.screenName是会话名称,可以自定义.

查看所有会话:

screen -ls

列表会显示已经创建的会话和状态.

重新进入一个会话:

screen -r screenName

关闭一个会话:

在关闭一个会话前,需要先获取到会话的ID,方式如下:

screen -ls
There are screens on:
        60695.abc       (Attached)
        60746.def       (Attached)
2 Sockets in /var/run/screen/S-root.

通过上面运行screen -ls,可以获取到def的id是60746.假如需要关闭def,则执行下面的命令即可:

screen -X -S 60746 quit

之后再次运行screen -ls会发现def这个名称的会话已经被关闭了.

Screen的官方文档在这里: https://www.gnu.org/software/screen/manual/

Fedora 31:运行Docker遇到的问题

image-2822
docker

错误详情

docker: Error response from daemon: OCI runtime create failed: container_linux.go:346: starting container process caused “process_linux.go:297: applying cgroup configuration for process caused \”open /sys/fs/cgroup/docker/cpuset.cpus.effective: no such file or directory\””: unknown.

fedora31发布
image-2823

问题导致

在Fedora 31中默认开启了cgroups V2,Docker还没有支持这个版本.但对cgroups V2的支持正在开发中,估计后续版本会支持.

解决办法

在Fedora 31中禁用cgroups V2即可.

执行下面的语句会重启系统,请注意提前保存数据及相关工作进度!

sudo grubby --update-kernel=ALL --args="systemd.unified_cgroup_hierarchy=0"
sudo reboot

解决办法参考自: https://github.com/docker/cli/issues/297#issuecomment-547022631