systemd-nspawnコンテナの背景を設定するには?

systemd-nspawnコンテナの背景を設定するには?

一部のコンテナの実行に使用しますsystemd-nspawn。バックグラウンドで実行するために使用できますsystemctl start systemd-nspawn@foo。しかし時々systemd-nspawn -bD foo。バックグラウンドで送信する方法が見つかりません。図のように端末を閉じると、コンテナのみがシャットダウンされますmachinectl list。私はこれを行うことができますか?それではどうですか?

私はコンテナが単純なプロセス以上であることを知っていますが、その意味では、望ましい効果はバックグラウンドプロセスと同じです。コンテナは実行されますが、元のシェルは私に再提供されることを望みます。

ベストアンサー1

まあ、それは価値があるので、次は私にとって効果的でした。

sudo systemd-nspawn -bxD/

私が与えないことを除いて、あなたとほぼ同じです。machine名前を入力し、-xコンテナのルートディレクトリの一時btrfsスナップショットを取得します。/

gettyこれにより、私の端末ptyにコンテナが表示され、loginすべてのエントリがログインします。

しばらく少し混乱していたことは認めますが、systemctlコンテナを少し後ろに見た後にzsh気づきました。(コンテナ内で実行):

systemctl stop console-getty.service

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or other units.
Authenticating as: mikeserv
Password:
==== AUTHENTICATION COMPLETE ===

これにより、システムは端末制御を放棄します。唯一のことは、私が最初にそれを使用していたということですsudo。また、認証のための独自の端末制御層もあります。これは空のターミナルを残し、kill -CONT "$(pgrep ksh)"私には役に立ちません。だから1~2分ほどもっと戸惑いましたが、(他の端末から)...

sudo fuser -v /dev/pts/*

                     USER        PID ACCESS COMMAND
/dev/pts/0:          mikeserv   8347 F.... zsh
                     root      18003 F.... sudo
/dev/pts/13:         mikeserv   9553 F.... zsh
                     mikeserv  16838 F.... ksh
                     root      17657 F.... sudo
                     root      17658 F.... systemd-nspawn
/dev/pts/14:         root      17675 F.... systemd

私は上記のリストを受け取り、それで考えました。一体何ですか?

sudo kill -STOP 17657

それから - 見なさい、見なさい - 私はksh同じターミナルに戻った。要約すると、まだアクセス権があることを確認する必要があります。machineもちろん、そうでなければ役に立ちません。

machinectl -l

MACHINE                    CLASS     SERVICE
localhost-35ceaa76b1306897 container nspawn

いいですね…

sudo machinectl login localhost-35ceaa76b1306897

Connected to machine localhost-35ceaa76b1306897. 
Press ^] three times within 1s to exit session.

Arch Linux 4.0.7-2-ARCH (pts/0)

localhost-35ceaa76b1306897 login:

getty別のターミナルでもう一つ受け取りました!

おすすめ記事