web-dev-qa-db-ja.com

lxc-consoleから切断する方法

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

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

41
robbyt

はい、 Ctrl-aqはデフォルトで機能するはずですが、lxc-consoleは実際にはscreenを使用してコンソールの動作を実現していません。実際、screenも使用しているため、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
56
aculich

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

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

これでコンテナが停止します。

2
Sreenivas

screen経由で接続しませんか? Ctrl-a dはそれから抜け出すはずです。

buntu LXCページ に詳細があります。

0
El Yobo

Xenial-HostでTrusty LXCを使用しているときに同様の問題が発生し、lxc-start -F -n CNでコンテナーを起動した後、コンテナーからログアウトするとホストに戻り、ホストに戻ることができませんでした。また、ホストのSudo lxc-ls -fがハングし、-[k]、[-W]、[-no-lock]オプションを指定したlxc-stopcommandsが機能しなかったため、最終的には-9で終了したコンテナープロセスを強制終了しましたが、その後起動しました。 lxc-startまたはlxc-attachのコンテナは正しく機能しませんが、lxc_cgfsngに関するエラーを表示し、init pidなどを見つけられません。

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

0
OpenITeX

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

0
Nishant