KVMを使って仮想化しようと思い、libvirtdを設定した際、いつも通り /etc/default/libvirtd
を libvirtd_opts="-l"
にしてリスタートしたところ、
libvirtd[3872]: --listen parameter not permitted with systemd activation sockets, see 'man libvirtd' for further guidance
systemd[1]: libvirtd.service: Main process exited, code=exited, status=6/NOTCONFIGURED
systemd[1]: libvirtd.service: Failed with result 'exit-code'.
systemd[1]: Failed to start Virtualization daemon.
systemd[1]: libvirtd.service: Scheduled restart job, restart counter is at 2.
systemd[1]: Stopped Virtualization daemon.
と吐いて上手く起動できない。
メッセージの通り、 man libvirtd
して確認したところ、
OPTIONS
...
-l, --listen
Listen for TCP/IP connections. This should not be set if using systemd socket activation. Instead activate the libvirtd-tls.socket or libvirtd-tcp.socket unit files.
...
との事。
libvirtdのバージョン5からは -l
は使えませんので、 libvirtd-tcp.socket
使ってね。という事らしい。
しかも、libvirtd.serviceが起動する前に起動させないとならないので、 /lib/systemd/system/libvirtd.service
を編集
[Unit]
...
Wants=libvirtd-tcp.socket ←追記
...
適用します。
# systemctl daemon-reload
libvirtd-tcp.socketの自動起動を有効にします。
# systemctl enable libvirtd-tcp.socket
念のため、システムを再起動させます。
無事にtcp16509をlistenしている事が確認できました。
※PIDが1/initでちょっとキモイ