robbyt Asked: 2012-07-07 10:32:59 +0800 CST2012-07-07 10:32:59 +0800 CST 2012-07-07 10:32:59 +0800 CST 如何断开与 lxc-console 的连接 772 我在 Ubuntu 12.04 中使用 lxc,它真的很棒。但是,我无法在连接lxc-console后断开与会话的连接。我在某个地方读到Ctrl-aq会断开我与控制台的连接,但它似乎不起作用。 我应该改为运行lxc-consolevia吗?screen linux ubuntu lxc 6 个回答 Voted Best Answer aculich 2012-10-17T00:20:04+08:002012-10-17T00:20:04+08:00 是Ctrl-aq的,默认情况下应该工作,但是不,lxc-console实际上并不screen用于完成其控制台行为。事实上,如果您使用屏幕,您可能会遇到冲突,因为它也Ctrl-a用作前缀。如果您在里面screen但没有意识到,那么您将需要键入Ctrl-a a q,因为 的默认行为screen是您必须键入Ctrl-a a才能实际发送^a到在其中运行的 shell。-e您可以通过将或--escape=PREFIX选项传递给 来更改转义的前缀lxc-console。 此外,它似乎可能存在错误,lxc-start因此如果它在您启动容器时立即进入控制台模式,您将无法使用Ctrl-a q它来逃脱——事实上,所有控制字符似乎都被搞砸了并打印到屏幕上而不是按照您期望的方式行事。一种解决方法是使用-d或--daemon选项运行它,这样它就不会立即启动控制台,而是手动连接到它: lxc-start -d -n container-name lxc-console -n container-name Sreenivas 2016-08-06T05:49:47+08:002016-08-06T05:49:47+08:00 我做了什么来停止容器 打开一个新会话。 以根用户身份登录。 检查容器状态。 lxc-stop -n <name of the container> 这将停止容器。 El Yobo 2012-07-15T22:53:14+08:002012-07-15T22:53:14+08:00 它不是通过连接screen吗? Ctrl-a d应该让你摆脱它。 Ubuntu LXC 页面有更多信息。 Nishant 2015-05-18T07:09:49+08:002015-05-18T07:09:49+08:00 另一种登录方式是直接ssh <ip>使用lxc-console. 您可以使用将其作为守护进程启动lxc-start -d -n <name>,然后使用控制台登录以首次获取 IP。 OpenITeX 2016-09-19T18:19:42+08:002016-09-19T18:19:42+08:00 我在 Xenial-host 中使用我的 Trusty LXC 时遇到了类似的问题,并且在启动容器后lxc-start -F -n CN无法退出并在从容器注销时返回主机。sudo lxc-ls -f主机中的也被挂起,并且没有任何lxc-stop带有 -k 或 -W 或 --no-lock 选项的命令起作用,所以我最终杀死了 -9'd 容器进程,但随后启动容器lxc-startorlxc-attach无法正常工作,但显示有关 lxc_cgfsng 的错误以及未找到 init pid 等。 在此处查看更多信息:https ://github.com/lxc/lxc/issues/1195 Ярослав Рахматуллин 2012-10-14T07:30:58+08:002012-10-14T07:30:58+08:00 当您完成某些应用程序的工作后,您通常可以按 CTR+C 终止它。如果这不起作用,总有退出命令:CTRL+。 另一方面,CTRL+D 表示“文件结束”,通常用于阻止某些程序读取键盘。您可以使用 CTRL+D 注销常规 shell。
是Ctrl-aq的,默认情况下应该工作,但是不,
lxc-console
实际上并不screen
用于完成其控制台行为。事实上,如果您使用屏幕,您可能会遇到冲突,因为它也Ctrl-a用作前缀。如果您在里面screen
但没有意识到,那么您将需要键入Ctrl-a a q,因为 的默认行为screen
是您必须键入Ctrl-a a才能实际发送^a
到在其中运行的 shell。-e
您可以通过将或--escape=PREFIX
选项传递给 来更改转义的前缀lxc-console
。此外,它似乎可能存在错误,
lxc-start
因此如果它在您启动容器时立即进入控制台模式,您将无法使用Ctrl-a q它来逃脱——事实上,所有控制字符似乎都被搞砸了并打印到屏幕上而不是按照您期望的方式行事。一种解决方法是使用-d
或--daemon
选项运行它,这样它就不会立即启动控制台,而是手动连接到它:我做了什么来停止容器
lxc-stop -n <name of the container>
这将停止容器。
它不是通过连接
screen
吗?Ctrl-a d
应该让你摆脱它。Ubuntu LXC 页面有更多信息。
另一种登录方式是直接
ssh <ip>
使用lxc-console
. 您可以使用将其作为守护进程启动lxc-start -d -n <name>
,然后使用控制台登录以首次获取 IP。我在 Xenial-host 中使用我的 Trusty LXC 时遇到了类似的问题,并且在启动容器后
lxc-start -F -n CN
无法退出并在从容器注销时返回主机。sudo lxc-ls -f
主机中的也被挂起,并且没有任何lxc-stop
带有 -k 或 -W 或 --no-lock 选项的命令起作用,所以我最终杀死了 -9'd 容器进程,但随后启动容器lxc-start
orlxc-attach
无法正常工作,但显示有关 lxc_cgfsng 的错误以及未找到 init pid 等。在此处查看更多信息:https ://github.com/lxc/lxc/issues/1195
当您完成某些应用程序的工作后,您通常可以按 CTR+C 终止它。如果这不起作用,总有退出命令:CTRL+。
另一方面,CTRL+D 表示“文件结束”,通常用于阻止某些程序读取键盘。您可以使用 CTRL+D 注销常规 shell。