lxc-consoleから切断する方法


41

Ubuntu 12.04でlxcを使用していますが、本当に素晴らしいです。ただし、接続したlxc-console後、セッションから切断できません。Ctrl-aqコンソールから切断される場所を読みましたが、機能していないようです。

代わりにlxc-console経由で実行する必要がありscreenますか?


同じ問題があります。「-d」パラメータを忘れてコンテナを起動した場合、解決方法はありません。Ctrl aqは効果がありません。私が見つけた唯一の解決策は、コンソールにログインし、「sudo poweroff」を実行することです。
eos

あなたも行うことができますlxc-stop別のシェルから
マーティン・セラーノ

回答:


56

はい、Ctrl-aqデフォルトで動作するはずですが、lxc-console実際にはscreenコンソールの動作を実現するために使用されません。実際、画面を使用しCtrl-aている場合、プレフィックスとしても使用するため、競合が発生する可能性があります。あなたが中にいるのに気付いてscreenいない場合Ctrl-a a q、デフォルトの振る舞いscreenは、Ctrl-a a実際^aにその中で実行されているシェルに送信するために入力する必要があるため、入力する必要があります。-eまたは--escape=PREFIXオプションをに渡すことで、エスケープのプレフィックスを変更できますlxc-console

また、lxc-startコンテナの起動時にすぐにコンソールモードになった場合、Ctrl-a qエスケープに使用できないバグがあるようです。実際、すべての制御文字がめちゃくちゃになって画面に出力されているようです。期待通りに振る舞うのではなく。回避策の1つは、すぐにコンソールを起動しないように、-dまたは--daemonオプションを付けて実行し、手動で接続することです。

lxc-start -d -n container-name
lxc-console -n container-name

1
<kbd> Ctrl-a q </ kdb>は、lxcバージョン0.9.0で接続されたコンソールに影響を与えません
Jay Taylor

5
lxc開発者がdockerの採用が10億倍多い理由を疑問に思うなら、このバグが主な理由の1つです。
フロリアン・ハイグル

1
@FlorianHeiglこのバグがいというあなたの感情には同意しますが、その真の理由は態度です:bugs.debian.org/cgi-bin/bugreport.cgi ? bug = 768073 access.redhat.com/articles/1365153 access。 redhat.com/discussions/2772171(およびRedHatが「いいえ、Docker!」で「LX(C | D)?」に応答する他の多くの機会(これらは「LXD Debian」および「LXD Redhatクエリ")。
ボヤンマルコヴィッチ

2

コンテナを止めるためにしたこと

  1. 新しいセッションを開きます。
  2. ルートとしてログインします。
  3. コンテナのステータスを確認してください。
  4. lxc-stop -n <name of the container>

これにより、コンテナが停止します。


0

経由で接続しませんscreenか? Ctrl-a dそれから抜け出す必要があります。

UbuntuのLXCページには、より多くの情報を持っています。


いいえ、これは機能しません。画面を使用して、lxc-consoleから切断できるようにしました。また、投稿したリンクには、この問題に関する情報がありません。
-robbyt

「画面の切り離し:Ca dまたはCa Cd」-help.ubuntu.com/community/LXC#Mini_screen_how-to ; それが機能しない場合はどうすればよいかわからない。
エル・ヨボ

1
@ElYoboいいえ、lxc-console実際には使用せずscreen、同様の動作をするだけで、デフォルトでは、ここで説明されているscreenのと競合するキーを実際に使用します。
aculich

0

ログインする別の方法は、単にssh <ip>instaedを使用することlxc-consoleです。使用してデーモンとして起動し、lxc-start -d -n <name>コンソールを使用してログインして初めてIPを取得できます。


0

Xenial-hostでTrusty LXCを使用しているとき、およびコンテナーlxc-start -F -n CNからログアウトしたときにホストに出入りできない状態でコンテナーを起動した後、同様の問題が発生しました。また、sudo lxc-ls -fホスト内でlxc-stopハングし、-kまたは-Wまたは--no-lockオプションを使用したコマンドがどれも機能しなかったため、最終的には動作したコンテナプロセスを-9'd殺しましたが、その後コンテナを起動するlxc-startか、lxc-attach正しく動作しません、ただしlxc_cgfsngに関するエラーを表示し、init pidなどを見つけられません。

詳細はこちら:https : //github.com/lxc/lxc/issues/1195


-6

何らかのアプリケーションでの作業が完了したら、通常はCTR + Cで終了できます。それでもうまくいかない場合は、常にquitコマンドがあります:CTRL +。

一方、CTRL + Dは「ファイルの終わり」を意味し、通常は一部のプログラムがキーボードを読み取らないように機能します。CTRL + Dで通常のシェルからログアウトできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.