顧客:
spice-client-gtk
QEMU-KVMで仮想マシンを実行しているハイパーバイザーであるリモートサーバーに接続するDebianワークステーションにパッケージをインストールしました。spice-client-gtk
ハイパーバイザー自体にはインストールされません。
仮想デバイス:
各仮想マシンをダブルクリックしvirt-manager
てメインメニューに移動し、ViewDetailsというプロパティを選択しDisplay [Spice|VNC]
てセクションType
をに設定しましたSpice server
。また、左の別のプロパティを選択してにVideo [QXL|Virtio|VGA]
設定しました。次に、をクリックしてプロパティを選択し、セクションをに設定してからセクションをに設定します。Model
QXL
Add HardwareChannel
Name
com.redhat.spice.0
Device Type
Spice agent (spicevmc)
私がインストールしたWindows仮想マシンからスパイスゲストツール仮想マシンを再起動したら、ワークステーションとWindows仮想マシンの間でコピーして貼り付けることができます。
Debian VMでパッケージをインストールしspice-vdagent
て再起動しましたが、コピーと貼り付けは機能しませんでした。
systemctl
サービス確認を行った結果、spice-vdagentd.socket
only サービスのみが実行されていることがわかりました。その後、すべてのサービスのステータスを確認しました。
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> systemctl status spice-vdagentd.service
● spice-vdagentd.service - Agent daemon for Spice guests
Loaded: loaded (/lib/systemd/system/spice-vdagentd.service; indirect; vendor preset: enabled)
Active: inactive (dead)
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> systemctl status spice-vdagent.service
● spice-vdagentd.service - Agent daemon for Spice guests
Loaded: loaded (/lib/systemd/system/spice-vdagentd.service; indirect; vendor preset: enabled)
Active: inactive (dead)
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> systemctl status spice-vdagentd.socket
● spice-vdagentd.socket - Activation socket for spice guest agent daemon
Loaded: loaded (/lib/systemd/system/spice-vdagentd.socket; enabled; vendor preset: enabled)
Active: active (listening) since Fri 2021-01-08 08:57:50 CET; 4min 59s ago
Listen: /var/run/spice-vdagentd/spice-vdagent-sock (Stream)
CGroup: /system.slice/spice-vdagentd.socket
Jan 08 08:57:50 localhost systemd[1]: Listening on Activation socket for spice guest agent daemon.
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> ls /lib/systemd/system/ | grep spice
-rw-r--r-- 1 root root 335 Oct 3 2018 spice-vdagentd.service
-rw-r--r-- 1 root root 280 Oct 3 2018 spice-vdagentd.socket
lrwxrwxrwx 1 root root 22 Oct 3 2018 spice-vdagent.service -> spice-vdagentd.service
サービスがをspice-vdagent.service
指していることに注意してくださいspice-vdagentd.service
。
これでサービス定義ファイルを確認しましたsystemd
。
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> cat /lib/systemd/system/spice-vdagentd.service
[Unit]
Description=Agent daemon for Spice guests
Requires=spice-vdagentd.socket
[Service]
Type=forking
EnvironmentFile=-/etc/default/spice-vdagentd
ExecStart=/usr/sbin/spice-vdagentd $SPICE_VDAGENTD_EXTRA_ARGS
PIDFile=/var/run/spice-vdagentd/spice-vdagentd.pid
PrivateTmp=true
Restart=on-failure
[Install]
Also=spice-vdagentd.socket
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> cat /lib/systemd/system/spice-vdagentd.socket
[Unit]
Description=Activation socket for spice guest agent daemon
# only start the socket if the virtio port device exists
Requisite=dev-virtio\x2dports-com.redhat.spice.0.device
[Socket]
ListenStream=/var/run/spice-vdagentd/spice-vdagent-sock
[Install]
WantedBy=sockets.target
メモ:
構成パラメータのルートフォルダの前には
EnvironmentFile
マイナス記号()が付いています。-
EnvironmentFile=-/etc/default/spice-vdagentd
@Zarothが彼の答えで指摘したように、これはバグではありません。
/etc/default/spice-vdagentd
また、基本的に存在しないものを作成することにしました。次に、内部に次のようにスパイスチャンネルを明示的に設定する行を追加しました。マニュアルページ:
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> touch /etc/default/spice-vdagentd
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> echo "SPICE_VDAGENTD_EXTRA_ARGS = -s "/dev/virtio-ports/com.redhat.spice.0"
Spiceチャンネルは、/dev/virtio-ports/com.redhat.spice.0
以前にDebian VMで設定したとおり、Debian VMにすでに存在していますvirt-manager
。
Debian VMを再起動してみましたが、まだ...コピーして貼り付けることは機能しません。
次に追加:
@Zarothは、サービスを手動で開始して有効にすることを提案しましたspice-vdagentd.service
。私はこれを実行した後、両方のサービスの状態を確認しました。
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> systemctl status spice-vdagentd.socket
● spice-vdagentd.socket - Activation socket for spice guest agent daemon
Loaded: loaded (/lib/systemd/system/spice-vdagentd.socket; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-08 10:08:06 CET; 2min 28s ago
Listen: /var/run/spice-vdagentd/spice-vdagent-sock (Stream)
Tasks: 0 (limit: 1149)
Memory: 0B
CGroup: /system.slice/spice-vdagentd.socket
Jan 08 10:08:06 localhost systemd[1]: Listening on Activation socket for spice guest agent daemon.
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> sudo systemctl status spice-vdagentd.service
● spice-vdagentd.service - Agent daemon for Spice guests
Loaded: loaded (/lib/systemd/system/spice-vdagentd.service; indirect; vendor preset: enabled)
Active: active (running) since Fri 2021-01-08 10:09:02 CET; 1min 38s ago
Process: 1263 ExecStart=/usr/sbin/spice-vdagentd $SPICE_VDAGENTD_EXTRA_ARGS (code=exited, status=0/SUCCESS)
Main PID: 1264 (spice-vdagentd)
Tasks: 1 (limit: 1149)
Memory: 520.0K
CGroup: /system.slice/spice-vdagentd.service
└─1264 /usr/sbin/spice-vdagentd -s /dev/virtio-ports/com.redhat.spice.0
Jan 08 10:09:02 localhost systemd[1]: Starting Agent daemon for Spice guests...
Jan 08 10:09:02 localhost systemd[1]: spice-vdagentd.service: Can't open PID file /run/spice-vdagentd/spice-vdagentd.pid
Jan 08 10:09:02 localhost systemd[1]: Started Agent daemon for Spice guests.
サービス状態ではspice-vdagentd.service
PIDファイルを開くことができないと報告しますが、再確認した後は手動で起動するたびにspice-vdagentd.service
次のようになります。
┌───┐
│ # │ ziga > debian--vm > ~
└─┬─┘
└─> ls -l /run/spice-vdagentd/spice-vdagentd.pid
-rw-r--r-- 1 root root 5 Jan 8 10:19 /run/spice-vdagentd/spice-vdagentd.pid
spice-vdagentd.service
すべてがそうであるように見えますが、アクティブにしても起動しないため、これは奇妙です。この問題をどのように解決しますか?
答え1
inパスの前のマイナス記号はEnvironmentFile
エラーではありません。それはただ意味するこのファイルはオプションです。:
渡される引数は絶対ファイル名であるか、オプションで「-」プレフィックスが付いたワイルドカード式でなければなりません。つまり、ファイルが存在しないとファイルを読み取ることができず、エラーや警告メッセージは記録されません。
ご質問については基本から始めます。実際にサービスを有効化および/または開始するとはどこにも言及していません。簡単に試してみましたかsystemctl enable spice-vdagentd.service && systemctl start spice-vdagentd.service
?スタートアップは失敗するか?それでは、ジャーナルドのバグは何ですか?